skipped frames with 18fps DPX - non monotonically increasing dts to muxer

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

skipped frames with 18fps DPX - non monotonically increasing dts to muxer

Kieran O'Leary
Hi,

I have encountered some DPX that has an fps of 18. It seems that ffmpeg skips every few frames when decoding - at least when I performed a framemd5 analysis. I noticed that 30522 frames were decoded, 10172 were dropped.

It seems that adding -framerate 18 to as an input option resolves the issue, but should ffmpeg not auto-detect the FPS?

I can replicate the issue with just a few frames (I will see if I can share the samples) - here's 17 frames decoded with nullm followed by the md5 muxer where only 14 frames are processed.:

$ ./ffmpeg -i ffmpeg-1-01_%06d.dpx -f null -

ffmpeg version N-92683-g32601fb821 Copyright (c) 2000-2018 the FFmpeg developers

  built with Apple LLVM version 8.0.0 (clang-800.0.42.1)

  configuration:

  libavutil      56. 24.101 / 56. 24.101

  libavcodec     58. 42.100 / 58. 42.100

  libavformat    58. 24.100 / 58. 24.100

  libavdevice    58.  6.101 / 58.  6.101

  libavfilter     7. 46.101 /  7. 46.101

  libswscale      5.  4.100 /  5.  4.100

  libswresample   3.  4.100 /  3.  4.100

Input #0, image2, from 'ffmpeg-1-01_%06d.dpx':

  Duration: 00:00:00.68, start: 0.000000, bitrate: N/A

    Stream #0:0: Video: dpx, gbrp10le, 3840x2160, 18 tbr, 25 tbn, 18 tbc

Stream mapping:

  Stream #0:0 -> #0:0 (dpx (native) -> wrapped_avframe (native))

Press [q] to stop, [?] for help

Output #0, null, to 'pipe:':

  Metadata:

    encoder         : Lavf58.24.100

    Stream #0:0: Video: wrapped_avframe, gbrp10le, 3840x2160, q=2-31, 200 kb/s, 18 fps, 18 tbn, 18 tbc

    Metadata:

      encoder         : Lavc58.42.100 wrapped_avframe

[null @ 0x7f88d3000600] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 1 >= 1

[null @ 0x7f88d3000600] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 4 >= 4

[null @ 0x7f88d3000600] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 6 >= 6

[null @ 0x7f88d3000600] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 9 >= 9

frame=   17 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.72 bitrate=N/A speed= 1.1x

video:9kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown


$ ./ffmpeg -i ffmpeg-1-01_%06d.dpx -f md5  -

ffmpeg version N-92683-g32601fb821 Copyright (c) 2000-2018 the FFmpeg developers

  built with Apple LLVM version 8.0.0 (clang-800.0.42.1)

  configuration:

  libavutil      56. 24.101 / 56. 24.101

  libavcodec     58. 42.100 / 58. 42.100

  libavformat    58. 24.100 / 58. 24.100

  libavdevice    58.  6.101 / 58.  6.101

  libavfilter     7. 46.101 /  7. 46.101

  libswscale      5.  4.100 /  5.  4.100

  libswresample   3.  4.100 /  3.  4.100

Input #0, image2, from 'ffmpeg-1-01_%06d.dpx':

  Duration: 00:00:00.68, start: 0.000000, bitrate: N/A

    Stream #0:0: Video: dpx, gbrp10le, 3840x2160, 18 tbr, 25 tbn, 18 tbc

Stream mapping:

  Stream #0:0 -> #0:0 (dpx (native) -> rawvideo (native))

Press [q] to stop, [?] for help

Output #0, md5, to 'pipe:':

  Metadata:

    encoder         : Lavf58.24.100

    Stream #0:0: Video: rawvideo (G3[0][10] / 0xA003347), gbrp10le, 3840x2160, q=2-31, 4478976 kb/s, 18 fps, 18 tbn, 18 tbc

    Metadata:

      encoder         : Lavc58.42.100 rawvideo

frame=    5 fps=0.0 q=-0.0 size=       0kB time=00:00:00.27 bitrate=   0.0kbits/frame=    9 fps=7.5 q=-0.0 size=       0kB time=00:00:00.50 bitrate=   0.0kbits/frame=   12 fps=7.0 q=-0.0 size=       0kB time=00:00:00.66 bitrate=   0.0kbits/MD5=123fb3ff58ca94c842453b518aeb6a9a

frame=   14 fps=6.6 q=-0.0 Lsize=       0kB time=00:00:00.77 bitrate=   0.4kbits/s dup=0 drop=3 speed=0.364x

video:680400kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown



Best,


Kieran O'Leary

Irish Film Institute



------
This email has been scanned for spam and malware by The Email Laundry.


_______________________________________________
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
|

Re: skipped frames with 18fps DPX - non monotonically increasing dts to muxer

Paul B Mahol
On 12/13/18, Kieran O'Leary <[hidden email]> wrote:

> Hi,
>
> I have encountered some DPX that has an fps of 18. It seems that ffmpeg
> skips every few frames when decoding - at least when I performed a framemd5
> analysis. I noticed that 30522 frames were decoded, 10172 were dropped.
>
> It seems that adding -framerate 18 to as an input option resolves the issue,
> but should ffmpeg not auto-detect the FPS?
>
> I can replicate the issue with just a few frames (I will see if I can share
> the samples) - here's 17 frames decoded with nullm followed by the md5 muxer
> where only 14 frames are processed.:
>
> $ ./ffmpeg -i ffmpeg-1-01_%06d.dpx -f null -
>
> ffmpeg version N-92683-g32601fb821 Copyright (c) 2000-2018 the FFmpeg
> developers
>
>   built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
>
>   configuration:
>
>   libavutil      56. 24.101 / 56. 24.101
>
>   libavcodec     58. 42.100 / 58. 42.100
>
>   libavformat    58. 24.100 / 58. 24.100
>
>   libavdevice    58.  6.101 / 58.  6.101
>
>   libavfilter     7. 46.101 /  7. 46.101
>
>   libswscale      5.  4.100 /  5.  4.100
>
>   libswresample   3.  4.100 /  3.  4.100
>
> Input #0, image2, from 'ffmpeg-1-01_%06d.dpx':
>
>   Duration: 00:00:00.68, start: 0.000000, bitrate: N/A
>
>     Stream #0:0: Video: dpx, gbrp10le, 3840x2160, 18 tbr, 25 tbn, 18 tbc
>
> Stream mapping:
>
>   Stream #0:0 -> #0:0 (dpx (native) -> wrapped_avframe (native))
>
> Press [q] to stop, [?] for help
>
> Output #0, null, to 'pipe:':
>
>   Metadata:
>
>     encoder         : Lavf58.24.100
>
>     Stream #0:0: Video: wrapped_avframe, gbrp10le, 3840x2160, q=2-31, 200
> kb/s, 18 fps, 18 tbn, 18 tbc
>
>     Metadata:
>
>       encoder         : Lavc58.42.100 wrapped_avframe
>
> [null @ 0x7f88d3000600] Application provided invalid, non monotonically
> increasing dts to muxer in stream 0: 1 >= 1
>
> [null @ 0x7f88d3000600] Application provided invalid, non monotonically
> increasing dts to muxer in stream 0: 4 >= 4
>
> [null @ 0x7f88d3000600] Application provided invalid, non monotonically
> increasing dts to muxer in stream 0: 6 >= 6
>
> [null @ 0x7f88d3000600] Application provided invalid, non monotonically
> increasing dts to muxer in stream 0: 9 >= 9
>
> frame=   17 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.72 bitrate=N/A speed=
> 1.1x
>
> video:9kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing
> overhead: unknown
>
>
> $ ./ffmpeg -i ffmpeg-1-01_%06d.dpx -f md5  -
>
> ffmpeg version N-92683-g32601fb821 Copyright (c) 2000-2018 the FFmpeg
> developers
>
>   built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
>
>   configuration:
>
>   libavutil      56. 24.101 / 56. 24.101
>
>   libavcodec     58. 42.100 / 58. 42.100
>
>   libavformat    58. 24.100 / 58. 24.100
>
>   libavdevice    58.  6.101 / 58.  6.101
>
>   libavfilter     7. 46.101 /  7. 46.101
>
>   libswscale      5.  4.100 /  5.  4.100
>
>   libswresample   3.  4.100 /  3.  4.100
>
> Input #0, image2, from 'ffmpeg-1-01_%06d.dpx':
>
>   Duration: 00:00:00.68, start: 0.000000, bitrate: N/A
>
>     Stream #0:0: Video: dpx, gbrp10le, 3840x2160, 18 tbr, 25 tbn, 18 tbc
>
> Stream mapping:
>
>   Stream #0:0 -> #0:0 (dpx (native) -> rawvideo (native))
>
> Press [q] to stop, [?] for help
>
> Output #0, md5, to 'pipe:':
>
>   Metadata:
>
>     encoder         : Lavf58.24.100
>
>     Stream #0:0: Video: rawvideo (G3[0][10] / 0xA003347), gbrp10le,
> 3840x2160, q=2-31, 4478976 kb/s, 18 fps, 18 tbn, 18 tbc
>
>     Metadata:
>
>       encoder         : Lavc58.42.100 rawvideo
>
> frame=    5 fps=0.0 q=-0.0 size=       0kB time=00:00:00.27 bitrate=
> 0.0kbits/frame=    9 fps=7.5 q=-0.0 size=       0kB time=00:00:00.50
> bitrate=   0.0kbits/frame=   12 fps=7.0 q=-0.0 size=       0kB
> time=00:00:00.66 bitrate=   0.0kbits/MD5=123fb3ff58ca94c842453b518aeb6a9a
>
> frame=   14 fps=6.6 q=-0.0 Lsize=       0kB time=00:00:00.77 bitrate=
> 0.4kbits/s dup=0 drop=3 speed=0.364x

Here it says it dropped 3 frames.

>
> video:680400kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
> muxing overhead: unknown

This is because null does not need timestamps so it pass all frames no
matter which timestamps are there, on other hand md5 drops frames with
same timestamps.
_______________________________________________
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".