Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 11th July 2019, 09:20   #1  |  Link
Metal-HTPC
Registered User
 
Join Date: Dec 2018
Posts: 58
How to encode 720p, 25fps BD compliant ?

hello,

when I encode 720p HD sources with 29,97 to BD compilant 720p sources I usually use changefps(59.94) in Avisynth and make a 720p59.94 x264 encode.

This time time I have a 25fps 720p HD source so I want to go for the 720p50 specification but somehow changefps(50.00) doesn't work. I get an error and don't understand why this is a wrong divisor?
There is also the possibility to not use the avisynth fps command and just go for a
720p25, which (according to http://www.x264bluray.com/home/720p-encoding) doubles the framerate with the "--pulldown double preset".
The encode works fine but plays with 50% more speed which is totally senseless.

Any advice is appreciated
thanks
regards
Metal-HTPC is offline   Reply With Quote
Old 11th July 2019, 15:05   #2  |  Link
junah
Registered User
 
Join Date: Oct 2018
Posts: 4
Does it even have 50 original frames?
junah is offline   Reply With Quote
Old 11th July 2019, 16:29   #3  |  Link
Sharc
Registered User
 
Join Date: May 2006
Posts: 3,997
What is the (avisynth) error you are getting?
--pulldown double encode with wrong playback speed: Do you watch the .264 raw stream? If so, mux it into a container (.mkv, .mp4, .m2ts) and set the framerate to 50fps

Upload a sample (few seconds duration) of your source so someone can take a look.

Last edited by Sharc; 11th July 2019 at 16:53.
Sharc is offline   Reply With Quote
Old 11th July 2019, 18:56   #4  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,308
Quote:
Originally Posted by Sharc View Post
--pulldown double encode with wrong playback speed:
Is it a bug un x264 ? In that case, it has to be reported.
__________________
My github.
jpsdr is online now   Reply With Quote
Old 11th July 2019, 21:32   #5  |  Link
Sharc
Registered User
 
Join Date: May 2006
Posts: 3,997
Quote:
Originally Posted by jpsdr View Post
Is it a bug un x264 ? In that case, it has to be reported.
Not as I know. The OP might however have a problem with the player, hence my recommendation to mux the .264 video stream into a container for playback. Just a thought.
Btw. exactly the same topic is discussed in the videohelp forum as well …….
Sharc is offline   Reply With Quote
Old 11th July 2019, 21:58   #6  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
25p should be accepted and it shouldn't speed the video up by 50%.
Encode a few minutes like so by only using an indexer:

x264 --bitrate 25000 --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --pulldown double --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o "out.264" "AVS_Script.avs"

x264 --bitrate 25000 --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --pulldown double --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o "out.264" "AVS_Script.avs"

Otherwise, with Avisynth you can do something like:

Code:
ConvertFPS(50)
assumeTFF()
separatefields()
selectevery(4,0,3)
weave()
and then encode everything as 25i:

x264 --bitrate 25000 --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --tff --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o "out.264" "AVS_Script.avs"

x264 --bitrate 25000 --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --tff --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o "out.264" "AVS_Script.avs"


Last but not least, you can try 50p by using FFMpegSource2 as indexer and setting fpsnum 50000, fpsden 1000 like so:

Code:
FFMpegSource2("source.m2ts", fpsnum=50000, fpsden=1000, atrack=-1)
and then encode everything as 50p:

x264 --bitrate 25000 --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 50 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o "out.264" "AVS_Script.avs"

x264 --bitrate 25000 --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 50 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o "out.264" "AVS_Script.avs"

Last edited by FranceBB; 11th July 2019 at 22:01.
FranceBB is offline   Reply With Quote
Old 11th July 2019, 22:24   #7  |  Link
Sharc
Registered User
 
Join Date: May 2006
Posts: 3,997
Quote:
Originally Posted by FranceBB View Post
…. and then encode everything as 25i: …...
720 must be progressive for Blu-ray compliance.
Sharc is offline   Reply With Quote
Old 12th July 2019, 02:37   #8  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
Ah, right, right, only 1080i is compliant so he would have to upscale as well... possibly with Spline36 or Spline64Resize in that case... (or NNEDI + Spline).
FranceBB is offline   Reply With Quote
Old 12th July 2019, 10:03   #9  |  Link
Metal-HTPC
Registered User
 
Join Date: Dec 2018
Posts: 58
It doesn't matter if I chose "changefps(50.00)" "changefps("pal_double") or "changefps(50, 1)" it always leads to the error "error: Evaluate: System exception - Integer Divide by Zero"
The commandline I used was
Quote:
--bluray-compat --level 4.1 --keyint 50 --sar 1:1 --slices 4 --vbv-bufsize 30000 --vbv-maxrate 40000 --b-pyramid none --weightp 0 --colorprim bt709 --transfer bt709 --colormatrix bt709 --merange 24
according to http://www.x264bluray.com/home/720p-encoding the blu-ray specification for 720p 25fps blu-rays has to be done using the "--pulldown double" command which makes 50 out of the 25fps. The problem is that this command doesn't work here because it doubles the playback speed. If a 720p 25fps blu ray without the framerate duplication is supported as well then I give it a try. Thanks so far guys and a good weekend
Metal-HTPC is offline   Reply With Quote
Old 12th July 2019, 21:23   #10  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
Quote:
Originally Posted by Metal-HTPC View Post
It doesn't matter if I chose "changefps(50.00)" "changefps("pal_double") or "changefps(50, 1)" it always leads to the error "error: Evaluate: System exception - Integer Divide by Zero"
Can't you just let the indexer duplicate frames to 50fps progressive?

Code:
FFMpegSource2("source.m2ts", fpsnum=50000, fpsden=1000, atrack=-1)
FranceBB is offline   Reply With Quote
Old 13th July 2019, 05:04   #11  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 7,903
the normal none BD spec doesn't have 25p at all it is either 720p50 or 1080i50 and well yeah 1440x1080i50. which the tp well knows.

is 720 uspcale to 1080 an option for you?
if yes all you need is now set the fake-interlaced flag for x264 and you are done.

Quote:
error: Evaluate: System exception - Integer Divide by Zero
can you just as a test try this:

assumeFPS(25)
changeFPS(50)
huhn is offline   Reply With Quote
Old 16th July 2019, 19:29   #12  |  Link
Metal-HTPC
Registered User
 
Join Date: Dec 2018
Posts: 58
Quote:
Originally Posted by huhn View Post
is 720 uspcale to 1080 an option for you?
if yes all you need is now set the fake-interlaced flag for x264 and you are done.
The stream recording hasn't the greatest quality to begin with so bloating it to a higher resolution doesn't make much sense but if I don't have any other choice..
Quote:
Originally Posted by huhn View Post
can you just as a test try this:
assumeFPS(25)
changeFPS(50)
"changeFPS(50)" also gives me the "integer devide by zero" error

shure assumeFPS(25) works but sadly 25fps isn't allowed in a 720p BD compilant encode

Code:
FFMpegSource2("source.m2ts", fpsnum=50000, fpsden=1000, atrack=-1)
I use DGAVCindex as an indexer. Didn't use FFMpeg for that before but could give it a try.

I just noticed something weird tho. The framerate of the source is specified different depending on which application I use.
DGAVCindex and MPC-HD shows it as 25fps which seems right because Belium is a PAL country and should therefore stream PAL. Tmpegenc smart renderer recognises it as 30 fps and tsmuxter as "unknown frame rate".
If this isn't 25fps then somethings very strange.

But before I continue to break my head. here is a sample for you

https://we.tl/t-ZhbKzDeUpW

thanks in advance for the help

Last edited by Metal-HTPC; 22nd July 2019 at 10:12.
Metal-HTPC is offline   Reply With Quote
Old 22nd July 2019, 10:11   #13  |  Link
Metal-HTPC
Registered User
 
Join Date: Dec 2018
Posts: 58
anyone?
Metal-HTPC is offline   Reply With Quote
Old 12th July 2019, 11:45   #14  |  Link
Stereodude
Registered User
 
Join Date: Dec 2002
Location: Region 0
Posts: 1,436
Doubles the playback speed on what software / hardware?
Stereodude is offline   Reply With Quote
Old 22nd July 2019, 10:32   #15  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,565
Code:
BlankClip(fps=25)
ChangeFPS(50)
Same error?

Please run AviSynth Info Tool or avsmeter -avsinfo and avsmeter "script.avs".

https://forum.doom9.org/showthread.php?t=174797
https://forum.doom9.org/showthread.php?t=176079
sneaker_ger is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 14:30.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.