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. |
![]() |
#1 | Link |
Registered User
Join Date: Dec 2018
Posts: 55
|
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 |
![]() |
![]() |
![]() |
#3 | Link |
Registered User
Join Date: May 2006
Posts: 3,954
|
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. |
![]() |
![]() |
![]() |
#5 | Link |
Registered User
Join Date: May 2006
Posts: 3,954
|
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 ……. |
![]() |
![]() |
![]() |
#6 | Link |
Broadcast Encoder
Join Date: Nov 2013
Location: Metropolitan City of Milan, Italy
Posts: 2,512
|
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() 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) 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. |
![]() |
![]() |
![]() |
#9 | Link | |
Registered User
Join Date: Dec 2018
Posts: 55
|
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:
|
|
![]() |
![]() |
![]() |
#11 | Link | |
Broadcast Encoder
Join Date: Nov 2013
Location: Metropolitan City of Milan, Italy
Posts: 2,512
|
Quote:
Code:
FFMpegSource2("source.m2ts", fpsnum=50000, fpsden=1000, atrack=-1) |
|
![]() |
![]() |
![]() |
#12 | Link | |
Registered User
Join Date: Oct 2012
Posts: 7,614
|
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:
assumeFPS(25) changeFPS(50) |
|
![]() |
![]() |
![]() |
#13 | Link | |
Registered User
Join Date: Dec 2018
Posts: 55
|
Quote:
"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 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. |
|
![]() |
![]() |
![]() |
#15 | Link |
Registered User
Join Date: Dec 2002
Posts: 5,565
|
Code:
BlankClip(fps=25) ChangeFPS(50) 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 |
![]() |
![]() |
![]() |
#17 | Link | |
Broadcast Encoder
Join Date: Nov 2013
Location: Metropolitan City of Milan, Italy
Posts: 2,512
|
Quote:
@Metal-HTPC... your source is a normal HD file in H.264 yv12 (4:2:0 planar) 8bit at 25fps CFR which has been already encoded by someone at a very low bitrate, therefore there are some pretty bad blocking artifacts as it's starved, like: ![]() Code:
#indexing video=FFVideoSource("Candlemass - Graspop 2019.264") audio=FFAudioSource("Candlemass - Graspop 2019.aac") AudioDub(video, audio) #Clipping Limiter(min_luma=16, max_luma=235, min_chroma=16, max_chroma=240) #Blending ConvertFPS(50) #Loudness Correction ResampleAudio(48000) Normalize(0.22) I won't send you back the encoded sample as it's 50 minutes long and the file would be too big to upload with a BD-Tier bitrate. For the records, whoever squeezed almost 1h of video in 500 MB, did a poor job: it's a concert and there are many dark scenes with strong lights which had to be encoded with attention; instead, someone just used random settings which made it look pretty bad, without details and even with blocking artifacts. Encoding it in BD with 25Mbit/s bitrate for BD compatibility is like giving a castle to a homeless person... well... you know what I mean. Anyway, I hope it helps. Cheers, Frank. Last edited by FranceBB; 23rd July 2019 at 04:38. |
|
![]() |
![]() |
![]() |
#18 | Link | ||
Registered User
Join Date: Dec 2018
Posts: 55
|
Quote:
will do so but have to check what the above mentioned tools have to say. Quote:
I know the quality is bad but this is the way they streamed it. I think they had to do it in order to make shure that the broadcast plays flawless. Those belgium festival streams never improved much over the years but they are still a better souvenir than nothing. Regarding making a BD out of it you are pretty much right. I should go for a x264 SD 720x576 resolution here and the show easily fits on a dvd-r or even a cd-r.. Thanks for the help, guys. I'm away for a few days and try to get the problems fixed when I return. It shure looks like it's a problem with my setup. |
||
![]() |
![]() |
![]() |
#19 | Link |
Registered User
Join Date: Dec 2018
Posts: 55
|
works fine now.
The problem was that I still used DGindex and DGAVCindex which are outdated for years and seem to have problems with todays (weird) streams. I switched to FFVideo and now everything works fine. Thanks for the support guys ! cheers |
![]() |
![]() |
![]() |
#20 | Link |
Useful n00b
Join Date: Jul 2014
Posts: 1,667
|
DGAVCIndex is deprecated for years. DGIndex is intended for MPEG2 video in ES/VOB/Transport, where it continues to work very well.
Not sure what you mean by "today's (weird) streams" but if it is AVC/HEVC/MPEG/VC1 in ES/Transport/Program Stream/MKV/MP4, and possibly with HDR, then DGDecNV is just for you! ![]() |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|