[FFmpeg-trac] #10587(ffmpeg:new): FFMpeg does not map streams correctly on .mov -- destroys the last stream

FFmpeg trac at avcodec.org
Mon Sep 25 16:48:32 EEST 2023


#10587: FFMpeg does not map streams correctly on .mov -- destroys the last stream
-------------------------------------+-------------------------------------
             Reporter:  Amir Kolsky  |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  ffmpeg       |                  Version:
                                     |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 I'm trying the following:

 Start with in.mov which has 4 streams 0:0 - 0:3.

 Audio, Video, Data (timecode), and mJpeg.

 Trying to map 0:0, 0:1, and 0:3 into out013.mov.

 ffmpeg -i in.mov -map 0 -map -0:2 -c copy out013.mov

 or

 ffmpeg -i in.mov -map 0:0 -map 0:1 -map 0:2 -c copy out013.mov

 ffmpeg tells me that 3 streams are mapped:

   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
   Stream #0:3 -> #0:2 (copy)
 ffprobe disagrees. According to it what really happened was:

   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
   Stream #0:2 -> #0:2 (copy)
 "Who needs a thumbnail image anyways, screw it!" I said. "Let's just get
 rid of the data."

 ffmpeg -i out013.mov -map 0:0 -map 0:1 -c copy out01.mov

 ffmpeg tells me that 2 streams are mapped:

   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
 ffprobe disagrees. According to it what really happened was:

   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
   Stream #0:2 -> #0:2 (copy)
 Seems like I can't rid myself of that data stream (0:2).

 When I add -write_tmcd false
 ffmpeg -i in.mov -map 0:0 -map 0:1 -map 0:3 -write_tmcd false -c copy
 out013.mov
 I get:
 Stream mapping:
    Stream #0:0 -> #0:0 (copy)
    Stream #0:1 -> #0:1 (copy)
    Stream #0:3 -> #0:2 (copy)

 but ffprobe says:
 Stream mapping:
    Stream #0:0 -> #0:0 (copy)
    Stream #0:1 -> #0:1 (copy)

 (Stream #0:0[0x1](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz,
 stereo, s32 (24 bit), 2304 kb/s (default)
 Metadata:
 handler_name    : Core Media Audio
 vendor_id       : [0][0][0][0]

 Stream #0:1[0x2]: Video: prores (Standard) (apcn / 0x6E637061),
 yuv422p10le(bt709, progressive), 1920x1080, 150213 kb/s, SAR 1:1 DAR 16:9,
 29.97 fps, 29.97 tbr, 30k tbn (default)
 Metadata:
 handler_name    : Core Media Video
 vendor_id       : FFMP       encoder)


 ffprobe in.mov

 ffprobe version 2023-09-07-git-9c9f48e7f2-essentials_build-www.gyan.dev
 Copyright (c) 2007-2023 the FFmpeg developers
   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
   configuration: --enable-gpl --enable-version3 --enable-static --disable-
 w32threads --disable-autodetect --enable-fontconfig --enable-iconv
 --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma
 --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-
 avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265
 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx
 --enable-mediafoundation --enable-libass --enable-libfreetype --enable-
 libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf
 --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-
 ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va
 --enable-libvpl --enable-libgme --enable-libopenmpt --enable-libopencore-
 amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc
 --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-
 libspeex --enable-libvorbis --enable-librubberband
   libavutil      58. 19.100 / 58. 19.100
   libavcodec     60. 26.100 / 60. 26.100
   libavformat    60. 11.100 / 60. 11.100
   libavdevice    60.  2.101 / 60.  2.101
   libavfilter     9. 11.100 /  9. 11.100
   libswscale      7.  3.100 /  7.  3.100
   libswresample   4. 11.100 /  4. 11.100
   libpostproc    57.  2.100 / 57.  2.100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b088f3300] stream 0, timescale not set
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 0
     compatible_brands: qt
     creation_time   : 2023-08-22T21:23:09.000000Z
     title           : Redacted
     com.apple.quicktime.displayname: Redacted
     com.apple.quicktime.title: Redacted
   Duration: 00:00:30.03, start: 0.000000, bitrate: 152583 kb/s
   Stream #0:0[0x1](eng): Audio: pcm_s24le (lpcm / 0x6D63706C), 48000 Hz, 2
 channels, s32 (24 bit), 2304 kb/s (default)
     Metadata:
       creation_time   : 2023-08-22T21:23:09.000000Z
       handler_name    : Core Media Audio
       vendor_id       : [0][0][0][0]
   Stream #0:1[0x2](und): Video: prores (Standard) (apcn / 0x6E637061),
 yuv422p10le(bt709, progressive), 1920x1080, 150213 kb/s, SAR 1:1 DAR 16:9,
 29.97 fps, 29.97 tbr, 30k tbn (default)
     Metadata:
       creation_time   : 2023-08-22T21:23:09.000000Z
       handler_name    : Core Media Video
       vendor_id       : [0][0][0][0]
       encoder         : Apple ProRes 422
       timecode        : 00:00:00:00
   Stream #0:2[0x3](und): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
     Metadata:
       creation_time   : 2023-08-22T21:23:09.000000Z
       handler_name    : Core Media Time Code
       timecode        : 00:00:00:00
   Stream #0:3[0x0]: Video: mjpeg (Progressive), yuvj420p(pc,
 bt470bg/unknown/unknown), 1920x1080 [SAR 72:72 DAR 16:9], 90k tbr, 90k tbn
 (attached pic)
 Unsupported codec with id 0 for input stream 2
 ffmpeg -i in.mov -map 0:0 -map 0:1 -map 0:3 -c copy out013.mov

 ffmpeg version 2023-09-07-git-9c9f48e7f2-essentials_build-www.gyan.dev
 Copyright (c) 2000-2023 the FFmpeg developers
   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
   configuration: --enable-gpl --enable-version3 --enable-static --disable-
 w32threads --disable-autodetect --enable-fontconfig --enable-iconv
 --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma
 --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-
 avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265
 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx
 --enable-mediafoundation --enable-libass --enable-libfreetype --enable-
 libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf
 --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-
 ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va
 --enable-libvpl --enable-libgme --enable-libopenmpt --enable-libopencore-
 amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc
 --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-
 libspeex --enable-libvorbis --enable-librubberband
   libavutil      58. 19.100 / 58. 19.100
   libavcodec     60. 26.100 / 60. 26.100
   libavformat    60. 11.100 / 60. 11.100
   libavdevice    60.  2.101 / 60.  2.101
   libavfilter     9. 11.100 /  9. 11.100
   libswscale      7.  3.100 /  7.  3.100
   libswresample   4. 11.100 /  4. 11.100
   libpostproc    57.  2.100 / 57.  2.100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001f92e383880] stream 0, timescale not set
 [aist#0:0/pcm_s24le @ 000001f92e50f400] Guessed Channel Layout: stereo
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 0
     compatible_brands: qt
     creation_time   : 2023-08-22T21:23:09.000000Z
     title           : Redacted
     com.apple.quicktime.displayname: Redacted
     com.apple.quicktime.title: Redacted
   Duration: 00:00:30.03, start: 0.000000, bitrate: 152583 kb/s
   Stream #0:0[0x1](eng): Audio: pcm_s24le (lpcm / 0x6D63706C), 48000 Hz, 2
 channels, s32 (24 bit), 2304 kb/s (default)
     Metadata:
       creation_time   : 2023-08-22T21:23:09.000000Z
       handler_name    : Core Media Audio
       vendor_id       : [0][0][0][0]
   Stream #0:1[0x2](und): Video: prores (Standard) (apcn / 0x6E637061),
 yuv422p10le(bt709, progressive), 1920x1080, 150213 kb/s, SAR 1:1 DAR 16:9,
 29.97 fps, 29.97 tbr, 30k tbn (default)
     Metadata:
       creation_time   : 2023-08-22T21:23:09.000000Z
       handler_name    : Core Media Video
       vendor_id       : [0][0][0][0]
       encoder         : Apple ProRes 422
       timecode        : 00:00:00:00
   Stream #0:2[0x3](und): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
     Metadata:
       creation_time   : 2023-08-22T21:23:09.000000Z
       handler_name    : Core Media Time Code
       timecode        : 00:00:00:00
   Stream #0:3[0x0]: Video: mjpeg (Progressive), yuvj420p(pc,
 bt470bg/unknown/unknown), 1920x1080 [SAR 72:72 DAR 16:9], 90k tbr, 90k tbn
 (attached pic)
 Output #0, mov, to 'out013.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 0
     compatible_brands: qt
     com.apple.quicktime.title: Redacted
     title           : Redacted
     com.apple.quicktime.displayname: Redacted
     encoder         : Lavf60.11.100
   Stream #0:0(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz,
 stereo, s32 (24 bit), 2304 kb/s (default)
     Metadata:
       creation_time   : 2023-08-22T21:23:09.000000Z
       handler_name    : Core Media Audio
       vendor_id       : [0][0][0][0]
   Stream #0:1(und): Video: prores (Standard) (apcn / 0x6E637061),
 yuv422p10le(bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31,
 150213 kb/s, 29.97 fps, 29.97 tbr, 30k tbn (default)
     Metadata:
       creation_time   : 2023-08-22T21:23:09.000000Z
       handler_name    : Core Media Video
       vendor_id       : [0][0][0][0]
       encoder         : Apple ProRes 422
       timecode        : 00:00:00:00
   Stream #0:2: Video: mjpeg (Progressive) (jpeg / 0x6765706A),
 yuvj420p(pc, bt470bg/unknown/unknown), 1920x1080 [SAR 72:72 DAR 16:9],
 q=2-31, 90k tbr, 90k tbn (attached pic)
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
   Stream #0:3 -> #0:2 (copy)
 Press [q] to stop, [?] for help
 [out#0/mov @ 000001f92e398340] video:550881kB audio:8446kB subtitle:0kB
 other streams:0kB global headers:0kB muxing overhead: unknown
 frame=  900 fps=0.0 q=-1.0 Lq=-1.0 size=  559116kB time=00:00:30.02
 bitrate=152567.6kbits/s speed= 117x
 ffprobe out013.mov

 ffprobe version 2023-09-07-git-9c9f48e7f2-essentials_build-www.gyan.dev
 Copyright (c) 2007-2023 the FFmpeg developers
   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
   configuration: --enable-gpl --enable-version3 --enable-static --disable-
 w32threads --disable-autodetect --enable-fontconfig --enable-iconv
 --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma
 --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-
 avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265
 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx
 --enable-mediafoundation --enable-libass --enable-libfreetype --enable-
 libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf
 --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-
 ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va
 --enable-libvpl --enable-libgme --enable-libopenmpt --enable-libopencore-
 amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc
 --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-
 libspeex --enable-libvorbis --enable-librubberband
   libavutil      58. 19.100 / 58. 19.100
   libavcodec     60. 26.100 / 60. 26.100
   libavformat    60. 11.100 / 60. 11.100
   libavdevice    60.  2.101 / 60.  2.101
   libavfilter     9. 11.100 /  9. 11.100
   libswscale      7.  3.100 /  7.  3.100
   libswresample   4. 11.100 /  4. 11.100
   libpostproc    57.  2.100 / 57.  2.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out013.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     title           : Redacted
     encoder         : Lavf60.11.100
     timecode        : 00:00:00:00
   Duration: 00:00:30.03, start: 0.000000, bitrate: 152523 kb/s
   Stream #0:0[0x1](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz,
 stereo, s32 (24 bit), 2304 kb/s (default)
     Metadata:
       handler_name    : Core Media Audio
       vendor_id       : [0][0][0][0]
   Stream #0:1[0x2]: Video: prores (Standard) (apcn / 0x6E637061),
 yuv422p10le(bt709, progressive), 1920x1080, 150213 kb/s, SAR 1:1 DAR 16:9,
 29.97 fps, 29.97 tbr, 30k tbn (default)
     Metadata:
       handler_name    : Core Media Video
       vendor_id       : FFMP
       encoder         : Apple ProRes 422
       timecode        : 00:00:00:00
   Stream #0:2[0x4](eng): Data: none (tmcd / 0x64636D74), 0 kb/s
     Metadata:
       handler_name    : Core Media Video
       timecode        : 00:00:00:00
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10587>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list