[FFmpeg-trac] #5379(undetermined:new): -ss option does not work for stream selection

FFmpeg trac at avcodec.org
Thu Apr 7 19:22:05 CEST 2016


#5379: -ss option does not work for stream selection
-------------------------------------+-------------------------------------
             Reporter:  gdittmer     |                    Owner:
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
              Version:  unspecified  |  undetermined
             Keywords:               |               Resolution:
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------

Comment (by gdittmer):

 This is a design flaw. ffmpeg with -ss works as analyse, seek, process. It
 should work as seek, analyse, process.

 The two following commands when run on the attached video should select
 the same streams, but they do not.

 a) ffmpeg -ss 3 -i ac3.mkv -map 0 -c copy -f matroska pipe:1 | ffmpeg -i -
 -c copy -y -f matroska /dev/null

 b) ffmpeg -ss 3 -i ac3.mkv -c copy -f matroska -y /dev/null

 Output of a) ffmpeg -ss 3 -i ac3.mkv -map 0 -c copy -f matroska pipe:1 |
 ffmpeg -i - -c copy -y -f matroska /dev/null

 ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers
   built with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
   configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-
 pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-
 decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis
 --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-
 libopencore_amrnb --enable-filters --enable-libgsm --enable-libvidstab
 --enable-libx265 --disable-doc --arch=x86_64 --enable-runtime-cpudetect
   libavutil      55. 17.103 / 55. 17.103
   libavcodec     57. 24.102 / 57. 24.102
   libavformat    57. 25.100 / 57. 25.100
   libavdevice    57.  0.101 / 57.  0.101
   libavfilter     6. 31.100 /  6. 31.100
   libswscale      4.  0.100 /  4.  0.100
   libswresample   2.  0.101 /  2.  0.101
   libpostproc    54.  0.100 / 54.  0.100
 ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers
   built with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
   configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-
 pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-
 decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis
 --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-
 libopencore_amrnb --enable-filters --enable-libgsm --enable-libvidstab
 --enable-libx265 --disable-doc --arch=x86_64 --enable-runtime-cpudetect
   libavutil      55. 17.103 / 55. 17.103
   libavcodec     57. 24.102 / 57. 24.102
   libavformat    57. 25.100 / 57. 25.100
   libavdevice    57.  0.101 / 57.  0.101
   libavfilter     6. 31.100 /  6. 31.100
   libswscale      4.  0.100 /  4.  0.100
   libswresample   2.  0.101 /  2.  0.101
   libpostproc    54.  0.100 / 54.  0.100
 Input #0, matroska,webm, from 'ac3.mkv':
   Metadata:
     title           : Arbitrage - Der Preis der Macht
     SUMMARY-ger     : Spielfilm USA / Polen 2012 (Arbitrage)
     DESCRIPTION     : Der New Yorker Multimillionär und Hedgefond-Manager
 Robert Miller steht kurz davor, das Geschäft seines Lebens abzuschließen:
 den enorm profitablen Verkauf seiner Firma. In dieser wichtigen Situation
 verschuldet er eines Nachts einen Autounfall, bei de
     DESCRIPTION-ger : Der New Yorker Multimillionär und Hedgefond-Manager
 Robert Miller steht kurz davor, das Geschäft seines Lebens abzuschließen:
 den enorm profitablen Verkauf seiner Firma. In dieser wichtigen Situation
 verschuldet er eines Nachts einen Autounfall, bei de
     DATE_BROADCASTED: 2016-04-06 22:15:00
     ORIGINAL_MEDIA_TYPE: TV
     CONTENT_TYPE    : Movie / Drama
     TVCHANNEL       : EinsPlus HD
     SUMMARY         : Spielfilm USA / Polen 2012 (Arbitrage)
     ENCODER         : Lavf57.25.100
   Duration: 00:00:03.65, start: 0.000000, bitrate: 2583 kb/s
     Chapter #0:0: start 2.189000, end 3.000000
     Stream #0:0(eng): Video: h264 (High), yuv420p, 1280x720 [SAR 1:1 DAR
 16:9], 50 fps, 50 tbr, 1k tbn, 100 tbc (default)
     Metadata:
       ENCODER         : Lavc57.24.102 libx264
       DURATION        : 00:00:03.619000000
     Stream #0:1(ger): Audio: mp2, 48000 Hz, stereo, s16p, 192 kb/s
 (default)
     Metadata:
       DURATION        : 00:00:03.635000000
     Stream #0:2(ger): Audio: ac3, 48000 Hz, stereo, fltp, 448 kb/s
 (default)
     Metadata:
       DURATION        : 00:00:03.648000000
 Output #0, matroska, to 'pipe:1':
   Metadata:
     title           : Arbitrage - Der Preis der Macht
     SUMMARY-ger     : Spielfilm USA / Polen 2012 (Arbitrage)
     DESCRIPTION     : Der New Yorker Multimillionär und Hedgefond-Manager
 Robert Miller steht kurz davor, das Geschäft seines Lebens abzuschließen:
 den enorm profitablen Verkauf seiner Firma. In dieser wichtigen Situation
 verschuldet er eines Nachts einen Autounfall, bei de
     DESCRIPTION-ger : Der New Yorker Multimillionär und Hedgefond-Manager
 Robert Miller steht kurz davor, das Geschäft seines Lebens abzuschließen:
 den enorm profitablen Verkauf seiner Firma. In dieser wichtigen Situation
 verschuldet er eines Nachts einen Autounfall, bei de
     DATE_BROADCASTED: 2016-04-06 22:15:00
     ORIGINAL_MEDIA_TYPE: TV
     CONTENT_TYPE    : Movie / Drama
     TVCHANNEL       : EinsPlus HD
     SUMMARY         : Spielfilm USA / Polen 2012 (Arbitrage)
     encoder         : Lavf57.25.100
     Chapter #0:0: start 0.000000, end 0.000000
     Stream #0:0(eng): Video: h264 (H264 / 0x34363248), yuv420p, 1280x720
 [SAR 1:1 DAR 16:9], q=2-31, 50 fps, 50 tbr, 1k tbn, 1k tbc (default)
     Metadata:
       ENCODER         : Lavc57.24.102 libx264
       DURATION        : 00:00:03.619000000
     Stream #0:1(ger): Audio: mp2 (P[0][0][0] / 0x0050), 48000 Hz, stereo,
 192 kb/s (default)
     Metadata:
       DURATION        : 00:00:03.635000000
     Stream #0:2(ger): Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo,
 448 kb/s (default)
     Metadata:
       DURATION        : 00:00:03.648000000
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
   Stream #0:2 -> #0:2 (copy)
 Press [q] to stop, [?] for help
 [matroska @ 0x7fa4a1002600] failed to avoid negative pts -40 in stream 1.
 Try -avoid_negative_ts 1 as a possible workaround.
 [matroska @ 0x7fa4a1002600] failed to avoid negative pts -35 in stream 2.
 Try -avoid_negative_ts 1 as a possible workaround.
 [matroska @ 0x7fa4a1002600] failed to avoid negative pts -16 in stream 1.
 Try -avoid_negative_ts 1 as a possible workaround.
 [matroska @ 0x7fa4a1002600] failed to avoid negative pts -3 in stream 2.
 Try -avoid_negative_ts 1 as a possible workaround.
 Input #0, matroska,webm, from 'pipe:':
   Metadata:
     title           : Arbitrage - Der Preis der Macht
     SUMMARY         : Spielfilm USA / Polen 2012 (Arbitrage)
     SUMMARY-ger     : Spielfilm USA / Polen 2012 (Arbitrage)
     DESCRIPTION     : Der New Yorker Multimillionär und Hedgefond-Manager
 Robert Miller steht kurz davor, das Geschäft seines Lebens abzuschließen:
 den enorm profitablen Verkauf seiner Firma. In dieser wichtigen Situation
 verschuldet er eines Nachts einen Autounfall, bei de
     DESCRIPTION-ger : Der New Yorker Multimillionär und Hedgefond-Manager
 Robert Miller steht kurz davor, das Geschäft seines Lebens abzuschließen:
 den enorm profitablen Verkauf seiner Firma. In dieser wichtigen Situation
 verschuldet er eines Nachts einen Autounfall, bei de
     DATE_BROADCASTED: 2016-04-06 22:15:00
     ORIGINAL_MEDIA_TYPE: TV
     CONTENT_TYPE    : Movie / Drama
     TVCHANNEL       : EinsPlus HD
     ENCODER         : Lavf57.25.100
   Duration: N/A, start: 0.040000, bitrate: N/A
     Chapter #0:0: start 0.000000, end 0.000000
     Stream #0:0(eng): Video: h264 (High), yuv420p, 1280x720 [SAR 1:1 DAR
 16:9], 50 fps, 50 tbr, 1k tbn, 100 tbc (default)
     Metadata:
       ENCODER         : Lavc57.24.102 libx264
     Stream #0:1(ger): Audio: mp2, 48000 Hz, stereo, s16p, 192 kb/s
 (default)
     Stream #0:2(ger): Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
 (default)
 Output #0, matroska, to '/dev/null':
   Metadata:
     title           : Arbitrage - Der Preis der Macht
     SUMMARY         : Spielfilm USA / Polen 2012 (Arbitrage)
     SUMMARY-ger     : Spielfilm USA / Polen 2012 (Arbitrage)
     DESCRIPTION     : Der New Yorker Multimillionär und Hedgefond-Manager
 Robert Miller steht kurz davor, das Geschäft seines Lebens abzuschließen:
 den enorm profitablen Verkauf seiner Firma. In dieser wichtigen Situation
 verschuldet er eines Nachts einen Autounfall, bei de
     DESCRIPTION-ger : Der New Yorker Multimillionär und Hedgefond-Manager
 Robert Miller steht kurz davor, das Geschäft seines Lebens abzuschließen:
 den enorm profitablen Verkauf seiner Firma. In dieser wichtigen Situation
 verschuldet er eines Nachts einen Autounfall, bei de
     DATE_BROADCASTED: 2016-04-06 22:15:00
     ORIGINAL_MEDIA_TYPE: TV
     CONTENT_TYPE    : Movie / Drama
     TVCHANNEL       : EinsPlus HD
     encoder         : Lavf57.25.100
     Chapter #0:0: start 0.040000, end 0.040000
     Stream #0:0(eng): Video: h264 (H264 / 0x34363248), yuv420p, 1280x720
 [SAR 1:1 DAR 16:9], q=2-31, 50 fps, 50 tbr, 1k tbn, 1k tbc (default)
     Metadata:
       ENCODER         : Lavc57.24.102 libx264
     Stream #0:1(ger): Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz,
 5.1(side), 448 kb/s (default)
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:2 -> #0:1 (copy)
 frame=   56 fps=0.0 q=-1.0 Lsize=     457kB time=00:00:00.64
 bitrate=5781.9kbits/s speed=43.1x
 video:361kB audio:92kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.858408%
 frame=   56 fps=0.0 q=-1.0 Lsize=     429kB time=00:00:01.18
 bitrate=2956.1kbits/s speed= 379x
 video:361kB audio:65kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.740386%

 Output of b) ffmpeg -ss 3 -i ac3.mkv -c copy -f matroska -y /dev/null

 ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers
   built with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
   configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-
 pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-
 decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis
 --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-
 libopencore_amrnb --enable-filters --enable-libgsm --enable-libvidstab
 --enable-libx265 --disable-doc --arch=x86_64 --enable-runtime-cpudetect
   libavutil      55. 17.103 / 55. 17.103
   libavcodec     57. 24.102 / 57. 24.102
   libavformat    57. 25.100 / 57. 25.100
   libavdevice    57.  0.101 / 57.  0.101
   libavfilter     6. 31.100 /  6. 31.100
   libswscale      4.  0.100 /  4.  0.100
   libswresample   2.  0.101 /  2.  0.101
   libpostproc    54.  0.100 / 54.  0.100
 Input #0, matroska,webm, from 'ac3.mkv':
   Metadata:
     title           : Arbitrage - Der Preis der Macht
     SUMMARY-ger     : Spielfilm USA / Polen 2012 (Arbitrage)
     DESCRIPTION     : Der New Yorker Multimillionär und Hedgefond-Manager
 Robert Miller steht kurz davor, das Geschäft seines Lebens abzuschließen:
 den enorm profitablen Verkauf seiner Firma. In dieser wichtigen Situation
 verschuldet er eines Nachts einen Autounfall, bei de
     DESCRIPTION-ger : Der New Yorker Multimillionär und Hedgefond-Manager
 Robert Miller steht kurz davor, das Geschäft seines Lebens abzuschließen:
 den enorm profitablen Verkauf seiner Firma. In dieser wichtigen Situation
 verschuldet er eines Nachts einen Autounfall, bei de
     DATE_BROADCASTED: 2016-04-06 22:15:00
     ORIGINAL_MEDIA_TYPE: TV
     CONTENT_TYPE    : Movie / Drama
     TVCHANNEL       : EinsPlus HD
     SUMMARY         : Spielfilm USA / Polen 2012 (Arbitrage)
     ENCODER         : Lavf57.25.100
   Duration: 00:00:03.65, start: 0.000000, bitrate: 2583 kb/s
     Chapter #0:0: start 2.189000, end 3.000000
     Stream #0:0(eng): Video: h264 (High), yuv420p, 1280x720 [SAR 1:1 DAR
 16:9], 50 fps, 50 tbr, 1k tbn, 100 tbc (default)
     Metadata:
       ENCODER         : Lavc57.24.102 libx264
       DURATION        : 00:00:03.619000000
     Stream #0:1(ger): Audio: mp2, 48000 Hz, stereo, s16p, 192 kb/s
 (default)
     Metadata:
       DURATION        : 00:00:03.635000000
     Stream #0:2(ger): Audio: ac3, 48000 Hz, stereo, fltp, 448 kb/s
 (default)
     Metadata:
       DURATION        : 00:00:03.648000000
 Output #0, matroska, to '/dev/null':
   Metadata:
     title           : Arbitrage - Der Preis der Macht
     SUMMARY-ger     : Spielfilm USA / Polen 2012 (Arbitrage)
     DESCRIPTION     : Der New Yorker Multimillionär und Hedgefond-Manager
 Robert Miller steht kurz davor, das Geschäft seines Lebens abzuschließen:
 den enorm profitablen Verkauf seiner Firma. In dieser wichtigen Situation
 verschuldet er eines Nachts einen Autounfall, bei de
     DESCRIPTION-ger : Der New Yorker Multimillionär und Hedgefond-Manager
 Robert Miller steht kurz davor, das Geschäft seines Lebens abzuschließen:
 den enorm profitablen Verkauf seiner Firma. In dieser wichtigen Situation
 verschuldet er eines Nachts einen Autounfall, bei de
     DATE_BROADCASTED: 2016-04-06 22:15:00
     ORIGINAL_MEDIA_TYPE: TV
     CONTENT_TYPE    : Movie / Drama
     TVCHANNEL       : EinsPlus HD
     SUMMARY         : Spielfilm USA / Polen 2012 (Arbitrage)
     encoder         : Lavf57.25.100
     Chapter #0:0: start 0.000000, end 0.000000
     Stream #0:0(eng): Video: h264 (H264 / 0x34363248), yuv420p, 1280x720
 [SAR 1:1 DAR 16:9], q=2-31, 50 fps, 50 tbr, 1k tbn, 1k tbc (default)
     Metadata:
       ENCODER         : Lavc57.24.102 libx264
       DURATION        : 00:00:03.619000000
     Stream #0:1(ger): Audio: mp2 (P[0][0][0] / 0x0050), 48000 Hz, stereo,
 192 kb/s (default)
     Metadata:
       DURATION        : 00:00:03.635000000
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
 Press [q] to stop, [?] for help
 [matroska @ 0x7fc38a013a00] failed to avoid negative pts -40 in stream 1.
 Try -avoid_negative_ts 1 as a possible workaround.
 [matroska @ 0x7fc38a013a00] failed to avoid negative pts -16 in stream 1.
 Try -avoid_negative_ts 1 as a possible workaround.
 frame=   56 fps=0.0 q=-1.0 Lsize=     392kB time=00:00:00.63
 bitrate=5057.5kbits/s speed= 295x
 video:361kB audio:28kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.852921%

--
Ticket URL: <https://trac.ffmpeg.org/ticket/5379#comment:2>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list