ffmpeg: "Could not find tag for codec none"

5,385

I had a similar problem with a .mov file, and solved it using this info : https://acassis.wordpress.com/2019/09/28/ffmpeg-conversion-error-could-not-find-tag-for-codec-pcm_s16be/

It's basically : remove the -map 0 -map_metadata 0 -c copy (-codec for my case and also but it's the same as -c and also remove -copy_unknown although in your case you didn't use it) flags, and check after conversion that the video and audio are fine : if they are, it was getting stuck on unwanted data !

I was using :

ffmpeg -I "moviefiletocompress.mov" -copy_unknown -map_metadata 0 -map 0 -codec copy -tag:v hvc1 -codec:v libx265 -x265-params crf="26" -codec:a aac -preset fast "compressedfile-ffmpeg-h265-crf26.mp4"

And then solved it using :

ffmpeg -I "moviefiletocompress.mov" -tag:v hvc1 -codec:v libx265 -x265-params crf="26" -codec:a aac -preset fast "compressedfile-ffmpeg-h265-crf26.mp4"
Share:
5,385

Related videos on Youtube

Alexander
Author by

Alexander

Updated on September 18, 2022

Comments

  • Alexander
    Alexander over 1 year

    To save space on my NAS, I did compress some of my smartphone videos lately using this command:

    ffmpeg -hide_banner -y -i in_filename -map 0 -map_metadata 0 -c copy -c:a libvorbis -q:a 4 -c:v libx264 -crf 23 -preset slow -max_muxing_queue_size 4096 -movflags +faststart out_file.mp4
    

    This worked flawlessly, copying over all data streams and metadata, and compressing video and audio with the specified codecs. Unfortunately, as vorbis is not officially supported in the mp4 container, some player will not play the sound on those files. So I wanted to remux the files, for which I still have the originals available using:

    ffmpeg -hide_banner -y -i original.mp4 -i compressed.mp4 -map 1:v -map 0:a -map 0:s? -map 0:d? -map 0:t? -map_metadata 0 -c copy out.mp4
    

    This should

    • take all video streams from the compressed version created by ffmpeg
    • take all audio streams from original
    • take all subtitles, data, and attachment streams from orignal
    • take all metadata from the original

    However, the conversion fails with error

    Could not find tag for codec none in stream #2
    

    As I already did use this file to create the compressed version, I am puzzled why I now get a codec tag error here. Also using -copy_unknown, or -ignore_unknown does not help. When trying my original command again, I also get this error, so I really wonder, how did I create the "compressed" file in the first place. It must be possible...

    Codec information on the "original" and "compressed" file:

    Stream #0:2(eng): Data: none (urim / 0x6D697275), 38 kb/s (default)
    Stream #0:2(eng): Data: none (stts / 0x73747473), 38 kb/s (default)
    

    FYI: I wanted to remux the existing compressed video and original audio to speed up the process and prevent generation loss. As an alternative I could work on the original file or the compressed and encode only vide or audio respectively. However, as it currently stands I cannot work on either file without losing the "data" stream, which I would like to prevent if possible.

    Any inputs?

    If it helps, here the complete outputs:

    ffmpeg -y -i original.mp4 -map 0 -map_metadata 0 -c copy -c:a libvorbis -aq 4 -c:v libx264 -crf 23 -preset slow -max_muxing_queue_size 4096 -movflags +faststart out.mp4
    ffmpeg version git-2020-05-04-5767a2e Copyright (c) 2000-2020 the FFmpeg developers
      built with gcc 9.3.1 (GCC) 20200328
      configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
      libavutil      56. 43.100 / 56. 43.100
      libavcodec     58. 82.100 / 58. 82.100
      libavformat    58. 42.102 / 58. 42.102
      libavdevice    58.  9.103 / 58.  9.103
      libavfilter     7. 80.100 /  7. 80.100
      libswscale      5.  6.101 /  5.  6.101
      libswresample   3.  6.100 /  3.  6.100
      libpostproc    55.  6.100 / 55.  6.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'original.mp4':
      Metadata:
        major_brand     : nvr1
        minor_version   : 65537
        compatible_brands: isommp42nvr1
        creation_time   : 2018-10-06T16:49:58.000000Z
        com.android.version: 8.1.0
      Duration: 00:00:33.81, start: 0.000000, bitrate: 20507 kb/s
        Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuvj420p(pc, smpte170m), 1920x1080, 20022 kb/s, SAR 1:1 DAR 16:9, 29.49 fps, 29.50 tbr, 90k tbn, 180k tbc (default)
        Metadata:
          rotate          : 90
          creation_time   : 2018-10-06T16:49:58.000000Z
          handler_name    : VideoHandle
        Side data:
          displaymatrix: rotation of -90.00 degrees
        Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 255 kb/s (default)
        Metadata:
          creation_time   : 2018-10-06T16:49:58.000000Z
          handler_name    : SoundHandle
        Stream #0:2(eng): Data: none (urim / 0x6D697275), 38 kb/s (default)
        Metadata:
          creation_time   : 2018-10-06T16:49:58.000000Z
          handler_name    : MetaHandler
    Multiple -c, -codec, -acodec, -vcodec, -scodec or -dcodec options specified for stream 0, only the last option '-c:v libx264' will be used.
    Multiple -c, -codec, -acodec, -vcodec, -scodec or -dcodec options specified for stream 1, only the last option '-c:a libvorbis' will be used.
    Stream mapping:
      Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
      Stream #0:1 -> #0:1 (aac (native) -> vorbis (libvorbis))
      Stream #0:2 -> #0:2 (copy)
    Press [q] to stop, [?] for help
    [libx264 @ 000001dbc892f140] using SAR=1/1
    [libx264 @ 000001dbc892f140] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 000001dbc892f140] profile High, level 5.0, 4:2:0, 8-bit
    [libx264 @ 000001dbc892f140] 264 - core 159 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=2 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    [mp4 @ 000001dbc988f040] Could not find tag for codec none in stream #2, codec not currently supported in container
    Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
    Error initializing output stream 0:1 -- 
    Conversion failed!
    
    
    
    ffmpeg -y -i compressed.mp4 -map 0 -map_metadata 0 -c copy -c:a libvorbis -aq 4 -c:v libx264 -crf 23 -preset slow -max_muxing_queue_size 4096 -movflags +faststart out.mp4
    ffmpeg version git-2020-05-04-5767a2e Copyright (c) 2000-2020 the FFmpeg developers
      built with gcc 9.3.1 (GCC) 20200328
      configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
      libavutil      56. 43.100 / 56. 43.100
      libavcodec     58. 82.100 / 58. 82.100
      libavformat    58. 42.102 / 58. 42.102
      libavdevice    58.  9.103 / 58.  9.103
      libavfilter     7. 80.100 /  7. 80.100
      libswscale      5.  6.101 /  5.  6.101
      libswresample   3.  6.100 /  3.  6.100
      libpostproc    55.  6.100 / 55.  6.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 000002c3ca70df00] overread end of atom 'stsd' by 40 bytes
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'compressed.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        creation_time   : 2018-10-06T16:49:58.000000Z
        encoder         : Lavf58.3.100
      Duration: 00:00:33.81, start: 0.000000, bitrate: 10230 kb/s
        Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc), 1080x1920 [SAR 1:1 DAR 9:16], 10098 kb/s, 29.50 fps, 29.50 tbr, 15104 tbn, 59 tbc (default)
        Metadata:
          creation_time   : 2018-10-06T16:49:58.000000Z
          handler_name    : VideoHandler
        Stream #0:1(eng): Audio: vorbis (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 88 kb/s (default)
        Metadata:
          creation_time   : 2018-10-06T16:49:58.000000Z
          handler_name    : SoundHandler
        Stream #0:2(eng): Data: none (stts / 0x73747473), 38 kb/s (default)
        Metadata:
          creation_time   : 2018-10-06T16:49:58.000000Z
          handler_name    : DataHandler
    Multiple -c, -codec, -acodec, -vcodec, -scodec or -dcodec options specified for stream 0, only the last option '-c:v libx264' will be used.
    Multiple -c, -codec, -acodec, -vcodec, -scodec or -dcodec options specified for stream 1, only the last option '-c:a libvorbis' will be used.
    Stream mapping:
      Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
      Stream #0:1 -> #0:1 (vorbis (native) -> vorbis (libvorbis))
      Stream #0:2 -> #0:2 (copy)
    Press [q] to stop, [?] for help
    [libx264 @ 000002c3ca7b7440] using SAR=1/1
    [libx264 @ 000002c3ca7b7440] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 000002c3ca7b7440] profile High, level 5.0, 4:2:0, 8-bit
    [libx264 @ 000002c3ca7b7440] 264 - core 159 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=2 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    [mp4 @ 000002c3cad94140] Could not find tag for codec none in stream #2, codec not currently supported in container
    Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
    Error initializing output stream 0:0 -- 
    [libvorbis @ 000002c3ca74adc0] 32 frames left in the queue on closing
    Conversion failed!
    

    further reading https://trac.ffmpeg.org/ticket/8338 https://trac.ffmpeg.org/ticket/2928 https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-BBCGFJII

  • Alexander
    Alexander about 4 years
    -map 0 does not work, because this also maps the data stream which cannot be copied due to the unknown tag. I know how to not copy the data stream but wonder why ffmpeg cannot copy an existing stream from one mp4 to a new one.