[FFmpeg-trac] #1556(undetermined:new): Frame rate changed without changeing timestamps

FFmpeg trac at avcodec.org
Thu Jul 19 17:36:14 CEST 2012


#1556: Frame rate changed without changeing timestamps
--------------------------------------+----------------------------------
             Reporter:  FishB8        |                     Type:  defect
               Status:  new           |                 Priority:  normal
            Component:  undetermined  |                  Version:  0.11.1
             Keywords:                |               Blocked By:
             Blocking:                |  Reproduced by developer:  0
Analyzed by developer:  0             |
--------------------------------------+----------------------------------
 I used to be able to force change in framerate by doing the following:
 {{{
 % ffmpeg -f $input-device -i input -r 30/1 ... output
 }}}

 The indev that I'm capturing from gets video at 60fps, and this used to
 force the frame-rate down to 30 (by dropping every other frame) before
 streaming.

 However now, while it says the output is 30fps, the encoded timestamps
 seem to be stamped like they would be for 60fps. So the streamer / player
 says the steam it's receiving is 60 fps, so the audio and video drift
 wildly out of sync quite quickly when viewing rtp/rtsp streams.

 Trying to force is by doing:
 {{{
 % ffmpeg -r 60/1 -f $input-device -i input -r 30/1 ... output
 }}}

 results in an error "Option framerate not found" similar to #926


 My setup is a bit complicated with several apps connected with pipes, but
 it worked ~6 months ago. I've updated my system this week and it no longer
 works with ffmpeg 0.11.1

 decklink device -> bmdcapture -> ffpeg (scaling and encoding) -> vlc
 (simultaneous RTP-Mulitcast & RTSP)


 I also tried patching ffmpeg to interface with the decklink directly to
 see if cutting bmdcapture out the pipeline would help, but problem is
 still the same.

 Actual commands used:

 with bmdcapture
 {{{
 bmdcapture -c 2 -s 16 -m 16 -V 4 -A 1 -F nut -f pipe:1 | ffmpeg -re -i -
 -s 640x320 -r 30/1 -acodec libaacplus -ab 64k -vcodec libx264 -pix_fmt
 yuv420p -aspect 16:9 -vprofile high -preset slow -crf 22.0 -trellis 2
 -threads 8 -f nut - | cvlc - --sout '#duplicate{dst=rtp{mux=ts{use-key-
 frames},sdp=rtsp://@:8554/teststream},dst=rtp{mux=ts{use-key-
 frames},dst=224.2.0.1,port=5004,ttl=16,sdp=sap://,name=teststream}}'
 }}}

 without bmdcapture:
 {{{
 ffmpeg -re -f decklink -input_format 16 -i "" -s 640x360 -r 30/1 -pix_fmt
 yuv420p -vcodec libx264 -vprofile high -preset slow -trellis 2 -crf 22
 -acodec libaacplus -ab 64k -f nut - | cvlc - --sout
 '#duplicate{dst=rtp{mux=ts{use-key-
 frames},sdp=rtsp://@:8554/livestream},dst=rtp{mux=ts{use-key-
 frames},dst=224.2.0.1,port=5004,ttl=16,sdp=sap://,name=livestream}}'

 }}}

 Used in conjunction with VLC version 2.0.2 as the actual stream server (no
 transcoding, just transmuxing) and as the client as well.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1556>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list