I think I'm experiencing that the final output from Bluray encode jobs have double video frame rate than expected. Final output video will have video playing back at twice the expected speed. The video playback will finish at the halfway point of the file, but the audio plays back properly.
I've tested with encoding jobs using sources from DVD and Bluray ripped via MakeMKV.
It only happens on Bluray material, not DVD.
Im using x265 video pretty basically to convert source to a mobile version. MKV container, CRF 25, veryslow preset, no cropping or resizing, filtering is default Vapoursynth settings, no speed changes or anything fancy. I think that's the extent of how I change video settings. Audio is Opus 128k, but that shouldn't matter.
Hybrid version: 2024.06.09.1 Win10 64bit version. (though I've experienced this behavior with the past version or two of Hybrid).
There's no pop up or obvious error message. The job completes, but when you playback the output video, you see the video playback looks sped up.
I enabled debug file, ran a job to get a log to attach.
This might be related to these topics, but either a step didn't match mine exactly or they said a dev build fixed the issue. Hybrid has been updated since those posts, so I'm not sure if that means release build didnt get those changes or if my issue isn't similar after all:
https://forum.selur.net/thread-3724.html
https://forum.selur.net/thread-3718.html
Your source probably isn't interlaced, but either 'telecined' or '(soft) telecined'.
(DebugOutput does not contain the analysis of the source I this is a guess based on the fact that you wrote the source was a Blu-ray.)
So deinterlacing is probably the wrong approach.
You setting QTGMC to work in Bob mode creates double the frame rate. (no surprise there)
So my suggestion would be to determine whether your source is telecined, (soft) telecined, interlaced or progressive and overwrite the scan type to reflect the result.
If your source is '(soft) telecine', the best approach would probably to enable 'DGDecNV' support, so that the conversion to 23.976 is done by the source filter, otherwise (or when the source is 'telecine') using TIVTC would be the way to go. If (highly unlikely) the source is really interlaced, you could disable 'Bob' if you wanted 29.97 fps output. If the source is mixed there is no perfect solution in Hybrid and either adjusting TIVTC settings, sticking with QTGMC+Bob or using QTGMC+Bob followed by sRestore might be a good approach, but there are tons of different way one could go at it then,...
Cu Selur
Mediainfo says this about the source:
Frame rate mode : Variable
Frame rate : 59.940 (60000/1001) FPS
Original frame rate : 29.970 (30000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Interlaced
Scan type, store method : Separated fields
Scan order : Top Field First
I'll copy/paste User Info panel log at the end of the post, since its a lot. Two things I want to mention about it.
1. It says to try "Filtering->(De-)Interlace/Telecine->Deinterlace/Telecine Settings->Analyse", but I do not see Analyse there. Not sure if I'm missing this button or maybe it's been moved?
2. I noticed it says "preferring container frame rate (59.940) over stream frame (29.970)". Maybe that's tied to the issue since container frame rate is double the stream frame rate, and the variable frame rate?
I'm not sure what Bob mode is and did not enable it intentionally, if that's what you mean. I searched around and found a check box under the "Filtering -> (De-)Interlace/Telecine -> QTGMC Vapoursynth" section labelled "Bob", but this is not checked.
I did another encode with checking "Overwrite input scan type to" and selecting "telecine". I left options at default. The final output still looked the same. Video stream looks like it's playing back at 2x speed, finishes at the halfway point of the file, but audio is fine.
Hopefully that info helps. I'll have to relearn how to manually tell if source is telecine to check that myself.
The User Info panel says this about video analysis:
Grabbing video ids,...
-> Video ids found: 0
Analyzing video streams...
Analyzing video stream (0).
=> Detected stretch factor for track 0 is 2/1.
Prefering container (59.940) over stream frame rate (29.970)
-> Forcing time code extraction, since input is detected as vfr!
Extracting time codes from mkv for track with id 0.
Adjusting frame count (16478) to time code entry count (16479).
No input color matrix found, guessing by format and resolution,..
selecting 'bt709' since width*height and TV scale > 720*576.
-> Assuming color matrix to be: bt709
starting auto routines for source number: 1
Detected interlaced Material with 29,../59,.. fps, but didn't detect the material to be telecine. You might want to run 'Filtering->(De-)Interlace/Telecine->Deinterlace/Telecine Settings->Analyse'.
-> finished auto routines for source number: 1
Input is completely analysed,...
MediaInfo just reads the headers, which can be wrong.
Quote:Frame rate : 59.940 (60000/1001) FPS
Original frame rate : 29.970 (30000/1001) FPS
This says that the source container says the content is 59.94 and the video stream itself is 29.97.
By default, Hybrid trusts the container over the stream, this can be changed under 'Config->Internals->Prefer Original' and thus will detect the source as 59.94 fps.
Quote: Video stream looks like it's playing back at 2x speed,
Then your source container is wrongly flagged and you should tell Hybrid to prefer the stream (original) frame rate over the container frame rate. (before loading the source)
Quote: 1. It says to try "Filtering->(De-)Interlace/Telecine->Deinterlace/Telecine Settings->Analyse", but I do not see Analyse there. Not sure if I'm missing this button or maybe it's been moved?
It's there:
If the icons in Hybrid confuse you and you do not like to check the tool-tips, maybe disable switch to Text using 'View->Icon/Text'.
Analyse tool-tip:
Quote:Analyse:
When pressed, Hybrid will try to analyse the content regarding interlacing using its own mplayer based interlaced detection.
Side note:
- Depending on the content, it might help to use a higher analyse percentage.
- There is no definitive interlace detection other than using once eyes.
This method can detect stuff wrong, if it does, it would help to share a short sample with the Hybrid author that he can try to adjust/improve the current detection method.
Reading
[INFO] Interlacing patterns should help to understand how one can analyse, whether a source is interlaced, telecined, etc. .
Quote:The User Info panel says this about video analysis:
Grabbing video ids,...
-> Video ids found: 0
Analyzing video streams...
Analyzing video stream (0).
=> Detected stretch factor for track 0 is 2/1.
Prefering container (59.940) over stream frame rate (29.970)
-> Forcing time code extraction, since input is detected as vfr!
Extracting time codes from mkv for track with id 0.
Adjusting frame count (16478) to time code entry count (16479).
No input color matrix found, guessing by format and resolution,..
selecting 'bt709' since width*height and TV scale > 720*576.
-> Assuming color matrix to be: bt709
starting auto routines for source number: 1
Detected interlaced Material with 29,../59,.. fps, but didn't detect the material to be telecine. You might want to run 'Filtering->(De-)Interlace/Telecine->Deinterlace/Telecine Settings->Analyse'.
-> finished auto routines for source number: 1
Input is completely analysed,...
the panel that starts with:
Quote:This log is only intended for user information.
It should not be part of a bug/problem report!!
Cu Selur
Quote:you should tell Hybrid to prefer the stream (original) frame rate over the container frame rate. (before loading the source)
Enabling Prefer Original Frame Rate was actually one of my first ideas and first things I tried when first running into this issue awhile back, but I ruled that out because I tested it, but it didn't help at the time. It's a good thing you added (before loading the source), because I otherwise had no idea you have to enable that setting first, before even loading your input. When using Hybrid, I go through the tabs left to right in order starting with Base, so I was always loading input first and getting to that setting under Config was one of the last things I'd get to. I tested by enabling that option first, then loaded input and settings after, and the output video came out correctly. I'm going to save a profile with it enabled.
I see the Analyse button now. I guess seeing the magnifying glass next to a percent like that had me passing over that thinking it was some kind of zoom setting. I wouldn't have expected that to be a clickable button. But now I see pretty much all these images/icons are buttons. This also made me realize for Preset and Tune, you have to click the arrow next to it to apply what was selected in the drop down.
Wow, I'm glad all this got figured out! You have a good app going here. It's annoying to get all these individual video/audio encoding tool cogs together into a working machine. Hybrid has that going already with the bonus of having a working Vapoursynth setup (for Windows at least! I've been patiently waiting/searching for an easier way to get a Hybrid/Vapoursynth setup working in Fedora). I also like how pretty much every element has hover help on the right. Thank you for working on this app and helping on the forum.
Happy, that worked out. Remember to read the tool-tips of the icons before pressing them.
Cu Selur