Forum

Post a new question

Categories:

Tags:

FPS Transcode 30 to 25 FPS

chris 2018-03-04 21:14:35 UTC in Nimble Streamer
081530a6fe7e3d784112b2148f2b2cc0

I process a 60 or 30FPS stream coming in via H264 and if I don't specify fps_n and fps_d in my h265 transcode, nimble transcodes to 25FPS.

Is this normal behavior?

Denis Slobodskoy 2018-03-05 03:16:22 UTC
C723b4e32e1909d3d1b5519f98b586fe

Frame rate should remain the same, unless you're using deinterlacing (yadif) filter - in this case one frame may be produced from two input frames. Please submit your questions via https://wmspanel.com/help with detailed information of your streams and transcoder scenarios.

Aaron 2018-08-31 16:44:55 UTC
85bd0e0cb76cdb5dbae0c7bceee68099

I'm seeing the same issue and wondering why as well. Incoming video is UDP multicast 1080i 29.97. I'm deinterlacing using yadif and scaling to 1280x720 and my output frame rate appears to be defaulting to PAL i.e. 25fps. I would expect to get 720p29.97 at the output in this case but I'm not.

Denis Slobodskoy 2018-09-03 01:19:31 UTC
C723b4e32e1909d3d1b5519f98b586fe

Probably you mean source stream has 59.94 fps, as interlaced stream should have 50/60 rate - otherwise it's progressive stream and you don't need to deinterlace it. Since yadif filter changes frame rate, you should specify output frame rate explicitly.

chris 2018-09-03 03:00:08 UTC
081530a6fe7e3d784112b2148f2b2cc0

Use:

fps_n, fps_d
Set output FPS numerator and denominator. It only affects num_units_in_tick and time_scale fields in SPS.

If fps_n=30 and fps_d=1 then it's 30 FPS
If fps_n=60000 and fps_d=2002 then it's 29.97 FPS

martin 2018-09-03 12:21:16 UTC
8d46af54ed097f2d0b398f3d70e552b4

given the source fps is 59.94 fps interlaced, and we are using yadif filter, what is the ideal output fps for the best quality ? fps_n=120000, fps_d=2002 ?

Denis Slobodskoy 2018-09-04 01:26:38 UTC
C723b4e32e1909d3d1b5519f98b586fe

martin, if you're using yadif with mode=0 (send_frame, default) or 2 (send_frame_nospatial) it will generate one frame from two fields - in other words, FPS will be halved (29.97); otherwise with mode=1 or 3 (send_field / send_field_nospatial) it will remain 59.94.
fps_n and fps_d are numerator and denominator for FPS fraction; for 59.94 it can be 60000/1001 , 120000/2002, 180000/3003 etc. - as fraction will be reduced, it the same value.

Aaron 2018-09-05 18:50:48 UTC
85bd0e0cb76cdb5dbae0c7bceee68099

This is probably starting to get off topic for this thread as it seems to be more of yadif issue than a standards conversion problem. It seems after doing a de-interlace with the yadif filter the frame/field rate information is lost and the output defaults to 25FPS. Personally I would expect if my field rate going into the de-interlace step is 59.94 I would expect my final output to be 29.97 Frames per second without having to specify it in the transcode setup later on. i.e. fps_n = 60000 and fps_d=2002.

Denis Slobodskoy 2018-09-06 00:53:27 UTC
C723b4e32e1909d3d1b5519f98b586fe

Aaron,
Unfortunately, FPS information is lost after yadif filter and we can't restore it. You have to specify distinctly FPS in your scenarios.

Post a reply



This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the Privacy Policy. If you want to know more or withdraw your consent to all or some of the cookies, please refer to the Privacy Policy.
By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to the use of cookies.