ffmpeg reported fps different than actual file's

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

ffmpeg reported fps different than actual file's

tasos
Hello.
I get a video file with

> ffmpeg -y       -i /dev/dvb/adapter0/dvr0 -c:v copy -c:a copy   foo.avi
This file is displayed  on vlc  as a 50fps video file.

> Input #0, mpegts, from '/dev/dvb/adapter0/dvr0':
>   Duration: N/A, start: 7972.129344, bitrate: N/A
>   Program 1
>     Stream #0:0[0x6e]: Video: h264 (High) ([27][0][0][0] / 0x001B),
> yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps,
> 25 tbr, 90k tbn, 50 tbc
>     Stream #0:1[0x78]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz,
> stereo, s16p, 128 kb/s
>     Stream #0:2[0x82]: Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels,
> s16p
25 fps,25 tbr.
So my question is,is this correct?
Thanks!
_______________________________________________
ffmpeg-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ffmpeg reported fps different than actual file's

Simon Brown
On 1 August 2017 at 22:59, tasos <[hidden email]> wrote:

> Hello.
> I get a video file with
>
> ffmpeg -y       -i /dev/dvb/adapter0/dvr0 -c:v copy -c:a copy   foo.avi
>>
> This file is displayed  on vlc  as a 50fps video file.
>
> Input #0, mpegts, from '/dev/dvb/adapter0/dvr0':
>>   Duration: N/A, start: 7972.129344, bitrate: N/A
>>   Program 1
>>     Stream #0:0[0x6e]: Video: h264 (High) ([27][0][0][0] / 0x001B),
>> yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25
>> tbr, 90k tbn, 50 tbc
>>     Stream #0:1[0x78]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz,
>> stereo, s16p, 128 kb/s
>>     Stream #0:2[0x82]: Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels,
>> s16p
>>
> 25 fps,25 tbr.
> So my question is,is this correct?
> Thanks!
>
> My guess is that VLC is misreporting it, and it's 50 fields per second,
interlaced, and so FFMpeg is reporting it as 25 frames per second correctly.

I have seen something similar myself between the two.
Regards,
Simon
_______________________________________________
ffmpeg-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ffmpeg reported fps different than actual file's

tasos
Hello and thanks for replying.
This is what ffprobe gives me(i should have mentioned it earlier)

>     Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p(tv,
> bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 5593 kb/s, 50 fps, 25
> tbr, 50 tbn, 50 tbc


On 8/2/2017 1:01 AM, Simon Brown wrote:

> On 1 August 2017 at 22:59, tasos <[hidden email]> wrote:
>
>> Hello.
>> I get a video file with
>>
>> ffmpeg -y       -i /dev/dvb/adapter0/dvr0 -c:v copy -c:a copy   foo.avi
>> This file is displayed  on vlc  as a 50fps video file.
>>
>> Input #0, mpegts, from '/dev/dvb/adapter0/dvr0':
>>>    Duration: N/A, start: 7972.129344, bitrate: N/A
>>>    Program 1
>>>      Stream #0:0[0x6e]: Video: h264 (High) ([27][0][0][0] / 0x001B),
>>> yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25
>>> tbr, 90k tbn, 50 tbc
>>>      Stream #0:1[0x78]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz,
>>> stereo, s16p, 128 kb/s
>>>      Stream #0:2[0x82]: Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels,
>>> s16p
>>>
>> 25 fps,25 tbr.
>> So my question is,is this correct?
>> Thanks!
>>
>> My guess is that VLC is misreporting it, and it's 50 fields per second,
> interlaced, and so FFMpeg is reporting it as 25 frames per second correctly.
>
> I have seen something similar myself between the two.
> Regards,
> Simon
> _______________________________________________
> ffmpeg-user mailing list
> [hidden email]
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> [hidden email] with subject "unsubscribe".


_______________________________________________
ffmpeg-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ffmpeg reported fps different than actual file's

James Girotti
On Tue, Aug 1, 2017 at 3:22 PM, tasos <[hidden email]> wrote:

> Hello and thanks for replying.
> This is what ffprobe gives me(i should have mentioned it earlier)
>
>     Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p(tv,
>> bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 5593 kb/s, 50 fps, 25 tbr,
>> 50 tbn, 50 tbc
>>
>
>
Is this the ffprobe output from the file or your DVB capture device? I
politely request you provide full command lines and output in the future.


>
> On 8/2/2017 1:01 AM, Simon Brown wrote:
>
>> On 1 August 2017 at 22:59, tasos <[hidden email]> wrote:
>>
>> Hello.
>>> I get a video file with
>>>
>>> ffmpeg -y       -i /dev/dvb/adapter0/dvr0 -c:v copy -c:a copy   foo.avi
>>> This file is displayed  on vlc  as a 50fps video file.
>>>
>>> Input #0, mpegts, from '/dev/dvb/adapter0/dvr0':
>>>
>>>>    Duration: N/A, start: 7972.129344, bitrate: N/A
>>>>    Program 1
>>>>      Stream #0:0[0x6e]: Video: h264 (High) ([27][0][0][0] / 0x001B),
>>>> yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25
>>>> tbr, 90k tbn, 50 tbc
>>>>      Stream #0:1[0x78]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz,
>>>> stereo, s16p, 128 kb/s
>>>>      Stream #0:2[0x82]: Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels,
>>>> s16p
>>>
>>>
Can you dump directly from the device to file without using ffmpeg? I.E.:

dd if=/dev/dvb/adapter0/dvr0 of=./foo.ts bs=1M count=100

Then analyze that file with ffprobe and VLC to see what the reported
frame-rate is.

If you can't dump directly from the device node to file, then try keeping
the same container/format (I add "-t 30" so that we only get 30 seconds of
video):

ffmpeg -i /dev/dvb/adapter0/dvr0 -t 30 -c copy -f mpegts ./foo.ts

Example FFPROBE output from a random interlaced video on my computer:

ffprobe -v error -select_streams v:0 -show_entries
stream=r_frame_rate,avg_frame_rate -of default=nw=1 ./JG-FOO.ts

r_frame_rate=60000/1001
avg_frame_rate=30000/1001

VLC reports a frame-rate of 30000/1001 for JG-FOO.ts


>>> My guess is that VLC is misreporting it, and it's 50 fields per second,
>>>
>> interlaced, and so FFMpeg is reporting it as 25 frames per second
>> correctly.
>>
>
Let's do an experiment; my hypothesis is that when it is muxed to AVI the
frame-rate is changed for some reason. Are half-frames/fields counted as
full-fields/frames???

Take JG-FOO.ts from above and mux to AVI:

ffmpeg -v info -ss 5:00 -i ./JG-FOO.ts -c copy -t 10 ./JG-FOO.avi
Input #0, mpegts, from 'JG-FOO.ts':
  Duration: 01:05:01.45, start: 1.400000, bitrate: 16261 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
yuv420p(tv, top first), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions,
29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x101]: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz,
5.1(side), fltp, 384 kb/s
Output #0, avi, to './JG-FOO.avi':
  Metadata:
    ISFT            : Lavf57.56.101
    Stream #0:0: Video: mpeg2video (Main) (mpg2 / 0x3267706D), yuv420p(tv,
top first), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 59.94 tbr,
59.94 tbn, 59.94 tbc
    Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1(side), 384
kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[avi @ 0xbf2690] Non-monotonous DTS in output stream 0:0; previous: 127,
current: 127; changing to 128. This may result in incorrect timestamps in
the output file.
[avi @ 0xbf2690] Non-monotonous DTS in output stream 0:0; previous: 277,
current: 277; changing to 278. This may result in incorrect timestamps in
the output file.
[avi @ 0xbf2690] Non-monotonous DTS in output stream 0:0; previous: 427,
current: 427; changing to 428. This may result in incorrect timestamps in
the output file.
frame=  242 fps=0.0 q=-1.0 Lsize=    7660kB time=00:00:10.01
bitrate=6268.5kbits/s speed= 406x
video:7154kB audio:481kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.316611%

Now take a look at the frame-rates:

ffprobe -v error -select_streams v:0 -show_entries
stream=r_frame_rate,avg_frame_rate -of default=nw=1 ./JG-FOO.avi

r_frame_rate=60000/1001
avg_frame_rate=60000/1001

So my results show the frame rates have been doubled. Also, it shows
60000/1001 FPS using VLC. I think that's basically what you're seeing also

Try setting rate:

ffmpeg -v info -ss 5:00 -i ./JG-FOO.ts -c copy -t 10 -r 30000/1001
./JG-FOO-r30.avi
Input #0, mpegts, from 'JG-FOO.ts':
  Duration: 01:05:01.45, start: 1.400000, bitrate: 16261 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
yuv420p(tv, top first), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions,
29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x101]: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz,
5.1(side), fltp, 384 kb/s
Output #0, avi, to './JG-FOO-r30.avi':
  Metadata:
    ISFT            : Lavf57.56.101
    Stream #0:0: Video: mpeg2video (Main) (mpg2 / 0x3267706D), yuv420p(tv,
top first), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 59.94 tbr,
29.97 tbn, 29.97 tbc
    Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1(side), 384
kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[avi @ 0x17986a0] Non-monotonous DTS in output stream 0:0; previous: 64,
current: 64; changing to 65. This may result in incorrect timestamps in the
output file.
[avi @ 0x17986a0] Non-monotonous DTS in output stream 0:0; previous: 139,
current: 139; changing to 140. This may result in incorrect timestamps in
the output file.
[avi @ 0x17986a0] Non-monotonous DTS in output stream 0:0; previous: 214,
current: 214; changing to 215. This may result in incorrect timestamps in
the output file.
frame=  242 fps=0.0 q=-1.0 Lsize=    7653kB time=00:00:10.04
bitrate=6241.9kbits/s speed= 401x
video:7154kB audio:481kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.222683%

And FFPROBE outputs:

ffprobe -v error -select_streams v:0 -show_entries
stream=r_frame_rate,avg_frame_rate -of default=nw=1 ./JG-FOO-r30.avi

r_frame_rate=30000/1001
avg_frame_rate=30000/1001


Using VLC JG-FOO-r30.avi has a frame-rate of 30000/1001. Interestingly, it
appears that both JG-FOO.avi and JG-FOO-r30.avi play at the same real-time
rate in VLC. Need to try a longer sample to really tell, but duration is
listed in VLC as 10 seconds for both.

Seems like there is a 4-year-old bug report about this:
https://trac.ffmpeg.org/ticket/2900

Next, I try muxing to Matroska (MKV). TLDR: both frame-rates are 30000/1001
WITHOUT specifying "-r 30000/1001". So MKV does not show the same behavior.

AVI is old (1992!) and MKV might not be universally supported (yet), maybe
MP4 would work. TLDR (not specifying rate):

ffprobe -v error -select_streams v:0 -show_entries
stream=r_frame_rate,avg_frame_rate -of default=nw=1 ./JG-FOO.mp4

r_frame_rate=60000/1001
avg_frame_rate=21780000/890389

Not sure what's going on with the frame-rate here, could the video be mixed
interlace/non-interlaced? Again, I'm not an expert on container/formats.
Let's look a little closer still:

for f in JG-FOO*; do echo $f; ffprobe -v error -select_streams v:0
-show_entries stream=time_base,codec_time_base,r_frame_rate,avg_frame_rate
-of default=nw=1 $f; done

JG-FOO.avi
codec_time_base=1001/60000
r_frame_rate=60000/1001
avg_frame_rate=60000/1001
time_base=1001/60000

JG-FOO.mkv
codec_time_base=1001/30000
r_frame_rate=30000/1001
avg_frame_rate=30000/1001
time_base=1/1000

JG-FOO.mp4
codec_time_base=890389/21780000
r_frame_rate=60000/1001
avg_frame_rate=21780000/890389
time_base=1/90000

JG-FOO-r30.avi
codec_time_base=1001/30000
r_frame_rate=30000/1001
avg_frame_rate=30000/1001
time_base=1001/30000

JG-FOO.ts
codec_time_base=1001/30000
r_frame_rate=60000/1001
avg_frame_rate=30000/1001
time_base=1/90000

It appears that JG-FOO.avi is 60000/1001 frames-per-second, but the time
base/codec time base is 1001/60000. Frame rate was doubled, but time base
was halved. So it all works out in the end! That's probably why they all
play the same speed in VLC as well.

If I can try to decode the relevant part of your ffprobe output "50 fps, 25
tbr, 50 tbn, 50 tbc":

50 frames per second
25 time base r(?)
50 time base n("time base")
50 time base c(odec time base)

It looks to me like you have the same situation. The frame-rate is doubled,
but you time base is halved. Could you run:

ffprobe -v error -select_streams v:0 -show_entries
stream=time_base,codec_time_base,r_frame_rate,avg_frame_rate -of
default=nw=1 ./foo.avi

Sorry for the long reply it ended up being written as I was doing it, but I
hope that helps you understand better what's happening! I've learned a lot
about ffprobe while doing this (so you helped me too!)

Best Regards,
-JG
_______________________________________________
ffmpeg-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ffmpeg reported fps different than actual file's

tasos
Hello again.
A lot of information and i'm trying to process them.
I know a few basic things about video processing in general.
Anyway,the specific dvb source channel is quite strange or at least this
is how it looks
to me.
> Is this the ffprobe output from the file or your DVB capture device? I
> politely request you provide full command lines and output in the future.

That was from the file.


> Can you dump directly from the device to file without using ffmpeg? I.E.:
Yes i can.

> ffprobe -v error -select_streams v:0 -show_entries  \
> stream=r_frame_rate,avg_frame_rate -of default=nw=1 ./foo.ts
>
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
> [h264 @ 0x4088420] non-existing PPS 0 referenced
> [h264 @ 0x4088420] decode_slice_header error
> [h264 @ 0x4088420] no frame!
> [h264 @ 0x4088420] mmco: unref short failure
> r_frame_rate=25/1repeated 1 times
> avg_frame_rate=25/1
> r_frame_rate=25/1
> avg_frame_rate=25/1
Vlc reports 25fps! And btw the video is interlaced.

The fact that i used avi doesn't matter.I mean i could use something else.
Do you recommend mkv ?
Moreover,is the above raw output from the device the best way to be sure
about the fps etc ?

Thanks for the long reply and the time you spent on this. Of course
i have understood a few things better but i should read it again a few
more times
in order to completely get it :)
This whole thing about fps started when i had audio delay problems.
The problem appeared only when i was using -c:v h264_cuvid .
And then,i somehow thought about fps and audio.
But i should post another question about the audio delay problem...

On 8/3/2017 12:31 AM, James Girotti wrote:

> On Tue, Aug 1, 2017 at 3:22 PM, tasos <[hidden email]> wrote:
>
>> Hello and thanks for replying.
>> This is what ffprobe gives me(i should have mentioned it earlier)
>>
>>      Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p(tv,
>>> bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 5593 kb/s, 50 fps, 25 tbr,
>>> 50 tbn, 50 tbc
>>>
>>
> Is this the ffprobe output from the file or your DVB capture device? I
> politely request you provide full command lines and output in the future.
>
>
>> On 8/2/2017 1:01 AM, Simon Brown wrote:
>>
>>> On 1 August 2017 at 22:59, tasos <[hidden email]> wrote:
>>>
>>> Hello.
>>>> I get a video file with
>>>>
>>>> ffmpeg -y       -i /dev/dvb/adapter0/dvr0 -c:v copy -c:a copy   foo.avi
>>>> This file is displayed  on vlc  as a 50fps video file.
>>>>
>>>> Input #0, mpegts, from '/dev/dvb/adapter0/dvr0':
>>>>
>>>>>     Duration: N/A, start: 7972.129344, bitrate: N/A
>>>>>     Program 1
>>>>>       Stream #0:0[0x6e]: Video: h264 (High) ([27][0][0][0] / 0x001B),
>>>>> yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25
>>>>> tbr, 90k tbn, 50 tbc
>>>>>       Stream #0:1[0x78]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz,
>>>>> stereo, s16p, 128 kb/s
>>>>>       Stream #0:2[0x82]: Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels,
>>>>> s16p
>>>>
> Can you dump directly from the device to file without using ffmpeg? I.E.:
>
> dd if=/dev/dvb/adapter0/dvr0 of=./foo.ts bs=1M count=100
>
> Then analyze that file with ffprobe and VLC to see what the reported
> frame-rate is.
>
> If you can't dump directly from the device node to file, then try keeping
> the same container/format (I add "-t 30" so that we only get 30 seconds of
> video):
>
> ffmpeg -i /dev/dvb/adapter0/dvr0 -t 30 -c copy -f mpegts ./foo.ts
>
> Example FFPROBE output from a random interlaced video on my computer:
>
> ffprobe -v error -select_streams v:0 -show_entries
> stream=r_frame_rate,avg_frame_rate -of default=nw=1 ./JG-FOO.ts
>
> r_frame_rate=60000/1001
> avg_frame_rate=30000/1001
>
> VLC reports a frame-rate of 30000/1001 for JG-FOO.ts
>
>
>>>> My guess is that VLC is misreporting it, and it's 50 fields per second,
>>>>
>>> interlaced, and so FFMpeg is reporting it as 25 frames per second
>>> correctly.
>>>
> Let's do an experiment; my hypothesis is that when it is muxed to AVI the
> frame-rate is changed for some reason. Are half-frames/fields counted as
> full-fields/frames???
>
> Take JG-FOO.ts from above and mux to AVI:
>
> ffmpeg -v info -ss 5:00 -i ./JG-FOO.ts -c copy -t 10 ./JG-FOO.avi
> Input #0, mpegts, from 'JG-FOO.ts':
>    Duration: 01:05:01.45, start: 1.400000, bitrate: 16261 kb/s
>    Program 1
>      Metadata:
>        service_name    : Service01
>        service_provider: FFmpeg
>      Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
> yuv420p(tv, top first), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions,
> 29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc
>      Stream #0:1[0x101]: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz,
> 5.1(side), fltp, 384 kb/s
> Output #0, avi, to './JG-FOO.avi':
>    Metadata:
>      ISFT            : Lavf57.56.101
>      Stream #0:0: Video: mpeg2video (Main) (mpg2 / 0x3267706D), yuv420p(tv,
> top first), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 59.94 tbr,
> 59.94 tbn, 59.94 tbc
>      Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1(side), 384
> kb/s
> Stream mapping:
>    Stream #0:0 -> #0:0 (copy)
>    Stream #0:1 -> #0:1 (copy)
> Press [q] to stop, [?] for help
> [avi @ 0xbf2690] Non-monotonous DTS in output stream 0:0; previous: 127,
> current: 127; changing to 128. This may result in incorrect timestamps in
> the output file.
> [avi @ 0xbf2690] Non-monotonous DTS in output stream 0:0; previous: 277,
> current: 277; changing to 278. This may result in incorrect timestamps in
> the output file.
> [avi @ 0xbf2690] Non-monotonous DTS in output stream 0:0; previous: 427,
> current: 427; changing to 428. This may result in incorrect timestamps in
> the output file.
> frame=  242 fps=0.0 q=-1.0 Lsize=    7660kB time=00:00:10.01
> bitrate=6268.5kbits/s speed= 406x
> video:7154kB audio:481kB subtitle:0kB other streams:0kB global headers:0kB
> muxing overhead: 0.316611%
>
> Now take a look at the frame-rates:
>
> ffprobe -v error -select_streams v:0 -show_entries
> stream=r_frame_rate,avg_frame_rate -of default=nw=1 ./JG-FOO.avi
>
> r_frame_rate=60000/1001
> avg_frame_rate=60000/1001
>
> So my results show the frame rates have been doubled. Also, it shows
> 60000/1001 FPS using VLC. I think that's basically what you're seeing also
>
> Try setting rate:
>
> ffmpeg -v info -ss 5:00 -i ./JG-FOO.ts -c copy -t 10 -r 30000/1001
> ./JG-FOO-r30.avi
> Input #0, mpegts, from 'JG-FOO.ts':
>    Duration: 01:05:01.45, start: 1.400000, bitrate: 16261 kb/s
>    Program 1
>      Metadata:
>        service_name    : Service01
>        service_provider: FFmpeg
>      Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
> yuv420p(tv, top first), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions,
> 29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc
>      Stream #0:1[0x101]: Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz,
> 5.1(side), fltp, 384 kb/s
> Output #0, avi, to './JG-FOO-r30.avi':
>    Metadata:
>      ISFT            : Lavf57.56.101
>      Stream #0:0: Video: mpeg2video (Main) (mpg2 / 0x3267706D), yuv420p(tv,
> top first), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 59.94 tbr,
> 29.97 tbn, 29.97 tbc
>      Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1(side), 384
> kb/s
> Stream mapping:
>    Stream #0:0 -> #0:0 (copy)
>    Stream #0:1 -> #0:1 (copy)
> Press [q] to stop, [?] for help
> [avi @ 0x17986a0] Non-monotonous DTS in output stream 0:0; previous: 64,
> current: 64; changing to 65. This may result in incorrect timestamps in the
> output file.
> [avi @ 0x17986a0] Non-monotonous DTS in output stream 0:0; previous: 139,
> current: 139; changing to 140. This may result in incorrect timestamps in
> the output file.
> [avi @ 0x17986a0] Non-monotonous DTS in output stream 0:0; previous: 214,
> current: 214; changing to 215. This may result in incorrect timestamps in
> the output file.
> frame=  242 fps=0.0 q=-1.0 Lsize=    7653kB time=00:00:10.04
> bitrate=6241.9kbits/s speed= 401x
> video:7154kB audio:481kB subtitle:0kB other streams:0kB global headers:0kB
> muxing overhead: 0.222683%
>
> And FFPROBE outputs:
>
> ffprobe -v error -select_streams v:0 -show_entries
> stream=r_frame_rate,avg_frame_rate -of default=nw=1 ./JG-FOO-r30.avi
>
> r_frame_rate=30000/1001
> avg_frame_rate=30000/1001
>
>
> Using VLC JG-FOO-r30.avi has a frame-rate of 30000/1001. Interestingly, it
> appears that both JG-FOO.avi and JG-FOO-r30.avi play at the same real-time
> rate in VLC. Need to try a longer sample to really tell, but duration is
> listed in VLC as 10 seconds for both.
>
> Seems like there is a 4-year-old bug report about this:
> https://trac.ffmpeg.org/ticket/2900
>
> Next, I try muxing to Matroska (MKV). TLDR: both frame-rates are 30000/1001
> WITHOUT specifying "-r 30000/1001". So MKV does not show the same behavior.
>
> AVI is old (1992!) and MKV might not be universally supported (yet), maybe
> MP4 would work. TLDR (not specifying rate):
>
> ffprobe -v error -select_streams v:0 -show_entries
> stream=r_frame_rate,avg_frame_rate -of default=nw=1 ./JG-FOO.mp4
>
> r_frame_rate=60000/1001
> avg_frame_rate=21780000/890389
>
> Not sure what's going on with the frame-rate here, could the video be mixed
> interlace/non-interlaced? Again, I'm not an expert on container/formats.
> Let's look a little closer still:
>
> for f in JG-FOO*; do echo $f; ffprobe -v error -select_streams v:0
> -show_entries stream=time_base,codec_time_base,r_frame_rate,avg_frame_rate
> -of default=nw=1 $f; done
>
> JG-FOO.avi
> codec_time_base=1001/60000
> r_frame_rate=60000/1001
> avg_frame_rate=60000/1001
> time_base=1001/60000
>
> JG-FOO.mkv
> codec_time_base=1001/30000
> r_frame_rate=30000/1001
> avg_frame_rate=30000/1001
> time_base=1/1000
>
> JG-FOO.mp4
> codec_time_base=890389/21780000
> r_frame_rate=60000/1001
> avg_frame_rate=21780000/890389
> time_base=1/90000
>
> JG-FOO-r30.avi
> codec_time_base=1001/30000
> r_frame_rate=30000/1001
> avg_frame_rate=30000/1001
> time_base=1001/30000
>
> JG-FOO.ts
> codec_time_base=1001/30000
> r_frame_rate=60000/1001
> avg_frame_rate=30000/1001
> time_base=1/90000
>
> It appears that JG-FOO.avi is 60000/1001 frames-per-second, but the time
> base/codec time base is 1001/60000. Frame rate was doubled, but time base
> was halved. So it all works out in the end! That's probably why they all
> play the same speed in VLC as well.
>
> If I can try to decode the relevant part of your ffprobe output "50 fps, 25
> tbr, 50 tbn, 50 tbc":
>
> 50 frames per second
> 25 time base r(?)
> 50 time base n("time base")
> 50 time base c(odec time base)
>
> It looks to me like you have the same situation. The frame-rate is doubled,
> but you time base is halved. Could you run:
>
> ffprobe -v error -select_streams v:0 -show_entries
> stream=time_base,codec_time_base,r_frame_rate,avg_frame_rate -of
> default=nw=1 ./foo.avi
>
> Sorry for the long reply it ended up being written as I was doing it, but I
> hope that helps you understand better what's happening! I've learned a lot
> about ffprobe while doing this (so you helped me too!)
>
> Best Regards,
> -JG
> _______________________________________________
> ffmpeg-user mailing list
> [hidden email]
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> [hidden email] with subject "unsubscribe".


_______________________________________________
ffmpeg-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ffmpeg reported fps different than actual file's

James Girotti
On Wed, Aug 2, 2017 at 3:09 PM, tasos <[hidden email]> wrote:

> Hello again.
> A lot of information and i'm trying to process them.
> I know a few basic things about video processing in general.
> Anyway,the specific dvb source channel is quite strange or at least this
> is how it looks
> to me.
>
>> Is this the ffprobe output from the file or your DVB capture device? I
>> politely request you provide full command lines and output in the future.
>>
>
> That was from the file.
>
>
> Can you dump directly from the device to file without using ffmpeg? I.E.:
>>
> Yes i can.
>

That should make troubleshooting much easier! Glad you're able to do that.


>
> ffprobe -v error -select_streams v:0 -show_entries  \
>> stream=r_frame_rate,avg_frame_rate -of default=nw=1 ./foo.ts
>>
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>> [h264 @ 0x4088420] decode_slice_header error
>> [h264 @ 0x4088420] no frame!
>> [h264 @ 0x4088420] mmco: unref short failure
>> r_frame_rate=25/1repeated 1 times
>> avg_frame_rate=25/1
>> r_frame_rate=25/1
>> avg_frame_rate=25/1
>>
> Vlc reports 25fps! And btw the video is interlaced.
>

Based on that it appears that your device is outputting an h264 video
stream @ exactly 25 fps, did you run the other command I recommended to get
the time base values?


> The fact that i used avi doesn't matter.I mean i could use something else.
> Do you recommend mkv ?
>

I personally use MKV as much as possible, it supports the widest range of
audio/video/subtitle formats. I can always remux to another container if
absolutely needed. The only negative I have come across is the metadata
implementation/specification. From what I've read different programs tend
to use slightly different metadata tags for the same piece of data. Not
really a problem for me though, haven't run into it.


> Moreover,is the above raw output from the device the best way to be sure
> about the fps etc ?
>

I think it's likely the best and most accurate. You might want to research
the exact device and v4l driver (I'm assuming you're on Linux) on
capabilities/expected output.


> Thanks for the long reply and the time you spent on this. Of course
> i have understood a few things better but i should read it again a few
> more times
> in order to completely get it :)
>

It was fun and I learned how to get output from ffprobe that I can
understand better! Hopefully, it will help others too.


> This whole thing about fps started when i had audio delay problems.
> The problem appeared only when i was using -c:v h264_cuvid .
> And then,i somehow thought about fps and audio.
> But i should post another question about the audio delay problem...


Yes, start another question/thread. I already have some ideas there too,
based on my own personal struggles.

-JG
_______________________________________________
ffmpeg-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ffmpeg reported fps different than actual file's

tasos

On 8/3/2017 2:24 AM, James Girotti wrote:

> On Wed, Aug 2, 2017 at 3:09 PM, tasos <[hidden email]> wrote:
>
>> Hello again.
>> A lot of information and i'm trying to process them.
>> I know a few basic things about video processing in general.
>> Anyway,the specific dvb source channel is quite strange or at least this
>> is how it looks
>> to me.
>>
>>> Is this the ffprobe output from the file or your DVB capture device? I
>>> politely request you provide full command lines and output in the future.
>>>
>> That was from the file.
>>
>>
>> Can you dump directly from the device to file without using ffmpeg? I.E.:
>> Yes i can.
>>
> That should make troubleshooting much easier! Glad you're able to do that.
>
>
>> ffprobe -v error -select_streams v:0 -show_entries  \
>>> stream=r_frame_rate,avg_frame_rate -of default=nw=1 ./foo.ts
>>>
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] SPS unavailable in decode_picture_timing
>>> [h264 @ 0x4088420] non-existing PPS 0 referenced
>>> [h264 @ 0x4088420] decode_slice_header error
>>> [h264 @ 0x4088420] no frame!
>>> [h264 @ 0x4088420] mmco: unref short failure
>>> r_frame_rate=25/1repeated 1 times
>>> avg_frame_rate=25/1
>>> r_frame_rate=25/1
>>> avg_frame_rate=25/1
>>>
>> Vlc reports 25fps! And btw the video is interlaced.
>>
> Based on that it appears that your device is outputting an h264 video
> stream @ exactly 25 fps, did you run the other command I recommended to get
> the time base values?
Yes and now i think i can get more info from those commands.I mean what
happens when fps change according to time.

>
>
>> The fact that i used avi doesn't matter.I mean i could use something else.
>> Do you recommend mkv ?
>>
> I personally use MKV as much as possible, it supports the widest range of
> audio/video/subtitle formats. I can always remux to another container if
> absolutely needed. The only negative I have come across is the metadata
> implementation/specification. From what I've read different programs tend
> to use slightly different metadata tags for the same piece of data. Not
> really a problem for me though, haven't run into it.
>
>
>> Moreover,is the above raw output from the device the best way to be sure
>> about the fps etc ?
>>
> I think it's likely the best and most accurate. You might want to research
> the exact device and v4l driver (I'm assuming you're on Linux) on
> capabilities/expected output.
Yes it's Linux.
>
>
>> Thanks for the long reply and the time you spent on this. Of course
>> i have understood a few things better but i should read it again a few
>> more times
>> in order to completely get it :)
>>
> It was fun and I learned how to get output from ffprobe that I can
> understand better! Hopefully, it will help others too.
I hope too! :)
>
>
>> This whole thing about fps started when i had audio delay problems.
>> The problem appeared only when i was using -c:v h264_cuvid .
>> And then,i somehow thought about fps and audio.
>> But i should post another question about the audio delay problem...
>
> Yes, start another question/thread. I already have some ideas there too,
> based on my own personal struggles.
I'm sure you will have a solution.Nevertheless I must prepare a complete
scenario.
Thanks again!
>
> -JG
> _______________________________________________
> ffmpeg-user mailing list
> [hidden email]
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> [hidden email] with subject "unsubscribe".


_______________________________________________
ffmpeg-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Loading...