0

I have a .mov file with a number of streams both audio and video I'd like to demux (if thats the correct term) into separate files (1 per stream to start with) without loosing quality or resolution

When I use the command

ffmpeg -i c:\ffmpeg\VideoFile.mov -c copy -map 0:v:1 -map 0:d Vid1.mov

I get a video file Vid1.mov but it throws an error when I try to playback in QuickTime, the original played back fine without errors. During the copy execution the following error is listed

fps 600 is too large1 q=-1.0 size= 1455730kB time=01:06:34.72 bitrate=2985.3kbits/s speed= 470x

Below is the ffprobe output for the file I'm trying to demux (break into component parts)

>ffprobe c:\ffmpeg\VideoFile.mov ffprobe version N-78964-g5061579 Copyright (c) 2007-2016 the FFmpeg developers built with gcc 5.3.0 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib libavutil 55. 19.100 / 55. 19.100 libavcodec 57. 28.100 / 57. 28.100 libavformat 57. 28.100 / 57. 28.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 39.102 / 6. 39.102 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000026982a1dea0] multiple edit list entries, a/v desync might occur, patch welcome Last message repeated 8 times [mov,mp4,m4a,3gp,3g2,mj2 @ 0000026982a1dea0] Using non-standard frame rate 250/1 [aac @ 0000026982a22020] element type mismatch 1 != 0 [h264 @ 0000026982a22dc0] Increasing reorder buffer to 1 [h264 @ 00000269850ea500] Increasing reorder buffer to 1 [h264 @ 0000026982a2f920] Increasing reorder buffer to 1 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:\ffmpeg\VideoFile.mov': Metadata: major_brand : qt minor_version : 537199360 compatible_brands: qt creation_time : 2015-11-14 19:26:59 Duration: 01:08:02.11, start: 0.240040, bitrate: 14867 kb/s Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt470bg/bt709), 702x576, 3226 kb/s, SAR 59:54 DAR 767:576, 25 fps, 25 tbr, 25k tbn, 50 tbc (default) Metadata: creation_time : 2015-11-14 19:26:59 handler_name : Apple Alias Data Handler encoder : H.264 timecode : 01:10:08:99 Stream #0:1(eng): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 74 kb/s (default) Metadata: creation_time : 2015-11-14 19:26:59 handler_name : Apple Alias Data Handler Stream #0:2(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2992 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default) Metadata: rotate : 0 creation_time : 2015-11-14 19:26:59 handler_name : Apple Alias Data Handler encoder : H.264/AVC Side data: displaymatrix: rotation of -0.00 degrees Stream #0:3(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 157 kb/s Metadata: creation_time : 2015-11-14 19:26:59 handler_name : Apple Alias Data Handler Stream #0:4(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 3005 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default) Metadata: rotate : 0 creation_time : 2015-11-14 19:26:59 handler_name : Apple Alias Data Handler encoder : H.264/AVC Side data: displaymatrix: rotation of -0.00 degrees Stream #0:5(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 157 kb/s Metadata: creation_time : 2015-11-14 19:26:59 handler_name : Apple Alias Data Handler Stream #0:6(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 5020 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default) Metadata: rotate : 0 creation_time : 2015-11-14 19:26:59 handler_name : Apple Alias Data Handler encoder : H.264/AVC Side data: displaymatrix: rotation of -0.00 degrees Stream #0:7(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 157 kb/s Metadata: creation_time : 2015-11-14 19:26:59 handler_name : Apple Alias Data Handler Stream #0:8(eng): Data: none (tmcd / 0x64636D74) (default) Metadata: creation_time : 2015-11-14 19:26:59 handler_name : Apple Alias Data Handler reel_name : CUSTOM TimeCode track [P 1] timecode : 01:10:08:99 Unsupported codec with id 0 for input stream 8

Update: May 4th 2016 VLC does play the multiple streams without (obvious) issue. I noticed it was mentioned in the comments. I did split the file into its component streams. Mediainfo reports them as being different sizes (height,width in pixels) but all are 25.000fps.

If I playback frame by frame using OpenCV and python the individual streams playback ok (but look a bit jumpy like the frame rate of 25 frames per second isn't correct)

If I playback (using OpenCV and python) the original file I get 1 stream and the message [mov,mp4,m4a,3gp,3g2,mj2 @ 0000026982a1dea0] Timecode frame rate 250/1 not supported is listed in iPython console to go with the Jupyter notebook I'm using to run the python code

1

This is kinda tricky. Apparently, the video track you're trying to copy consists of multiple video streams of possibly differing properties stitched together. ffmpeg's MOV muxer (the part that copies over the stream into a new container) does not reliably process such streams.

What you can try is expressly specify the output framerate.

ffmpeg -i c:\ffmpeg\VideoFile.mov -r 25 -c copy -map 0:v:1 -map 0:d Vid1.mov
  • Would the full version of QuickTime allow me to demux the file? – Michael Mar 8 '16 at 12:10
  • Don't know. Only use regular QT for occasional use. – Gyan Mar 8 '16 at 12:21
  • Tried using the -r 25 but still got the error – Michael Mar 8 '16 at 16:12
  • Add -t 01:06:34.68 and check. And another command with -ss 01:06:34.72 before -i and check. – Gyan Mar 8 '16 at 18:53
  • Whats the significance of the values you selected for -t and -ss? – Michael Mar 9 '16 at 17:27
0

Your demuxed stream may be fine. QuickTime may be confused by the mov extension. Try outputting an .h264 file instead. Verify playback with ffplay. If it plays, you can mux it back into a mov file for QuickTime.

  • ffplay is more forgiving of non-uniform streams. Snapchat, for instance, has this facility where they allow you to stitch together multiple videos into one without re-encoding. VLC plays those just fine, but other players like WMP don't decode it correctly. – Gyan Mar 9 '16 at 9:10
  • Very true. I am making assumptions as to the intended use of the streams. It also seemed significant that the QT error occurred before playback started. – Michael Steinberg Mar 9 '16 at 19:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.