View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
nevcairiel
20th March 2011, 20:07
Since i use my own splitter and decoder, and i have never seen such issues, i'll just say "cannot reproduce" :d
SamuriHL
20th March 2011, 20:09
Known issue with jitter control. Seems like a bug in ffdshow.
nevcairiel
20th March 2011, 20:13
I've always had jitter correction enabled in ffdshow, and i never noticed the problem. I also never saw the problem with my own decoder.
Sounds like something else, possibly a audio renderer thing thats just being triggered by that.
SamuriHL
20th March 2011, 20:14
I've seen it reported before. Not sure what splitter was used before.
hoborg
20th March 2011, 20:14
Since i use my own splitter and decoder, and i have never seen such issues, i'll just say "cannot reproduce" :d
So you simply don't have any dropped frames/jitter? Jitter/Avr. sync/std are on "0"?
Screnshot. (http://www.volny.cz/hoborg/snap1.jpg)
nevcairiel
20th March 2011, 20:21
Never dropped frames, except on some very weird movies i get one or two on load, but none in playback. Jitter is most of the time 0, sometimes (rarely) a value something below 10, but nothing that i ever noticed in playback (including the EVR-CP OSD graphs, perfectly smooth)
Oh, and do me a favor and shrink screenshots :P
hoborg
20th March 2011, 20:24
Sounds like something else, possibly a audio renderer thing thats just being triggered by that.
I have ATI5770->Monitor HDMI connection. I just tested play it using my Audigy4 sound card. Result is the same.
Remove DTS track from MKV = no stutter.
It happend only on DTS + custom EVR.
Again, if i use simple EVR, playback is perfect:
http://www.volny.cz/hoborg/snap1.png
jmone
20th March 2011, 20:31
ffdshow? MS DTV Decoder? Are you guys watching that much native video content? If not, I wonder how you could *not* use the DScaler5 IVTC Mod MPEG2 decoder.
PAL Land here, most playback is from progressive sources, and while Interlaced content watching is pretty limited it includes:
- Camcorder footage, DV-AVI (50i), HDV(25p in a 50i container), and AVC (50p)
- PAL DTV recordings (normally broadcast in 1080i or 576i @ 50hz) for Sort / Music Video
- Some NTSC based from US Discs etc (eg old eps of West Wing ripped by Chapters)
nevcairiel
20th March 2011, 20:35
Again, if i use simple EVR, playback is perfect:
Maybe you should bring that up with the renderer devs, then.. :d
As i said, i sometimes do see jitter with values < 10, but never dropped frames, and never any visual problems with the video.
hoborg
20th March 2011, 20:37
Maybe you should bring that up with the renderer devs, then.. :d
I already did.
For example MePo dev wrote that this is audio decoder bug. I just trying to found the source of this issue :/
Only way i found how to fix it is to use ffdshow audio decoder with disabled jitter correction.
nevcairiel
20th March 2011, 20:40
Does it happen with other splitters?
You already said it happened with ffdshow as well, but only with LAV Splitter?
hoborg
20th March 2011, 20:43
Does it happen with other splitters?
You already said it happened with ffdshow as well, but only with LAV Splitter?
I tested MPC-HC and LAVF splitter, various combination of A/V decoders with the same result.
Only one thing helped - disabling jitter corection in ffdshow audio decoder - stuttering and droped frames are gone.
SamuriHL
20th March 2011, 20:50
That's consistent with what was reported before. Search the ffdshow thread for jitter and you should find it.
hoborg
20th March 2011, 20:50
@nevcairiel:
BTW, how hard will be to create modified LAVF audio decoder with disabled jitter corection for DTS - just for simple test?
nevcairiel
20th March 2011, 20:51
I don't really have any active jitter correction in the LAV Audio Decoder .. i can produce a test build to disable on thing and see, but i don't think its relevant, but hey testing may help
nevcairiel
20th March 2011, 20:55
Try this:
http://files.1f0.de/lavf/LAVFilters-0.19-audio-jitter-test.zip
hoborg
20th March 2011, 20:58
Try this:
http://files.1f0.de/lavf/LAVFilters-0.19-audio-jitter-test.zip
Hey, you did it, no stuttering any longer! :)
nevcairiel
20th March 2011, 21:04
I'll have to run some tests if that has negative results for other files, but in theory it should not have.
Thinking about it, i'm not sure why i coded it like that.
If someone else wants, i would appreciate some tests using the version linked with various audio codecs, if you notice any problems.
Just to be sure you see it, here is the link again:
http://files.1f0.de/lavf/LAVFilters-0.19-audio-jitter-test.zip
Ger
20th March 2011, 22:54
Running the jitter test ax now. Not noticed anything different so far, but I didn't have hoborg's problem in the first place.
On a different note, am I missing something regarding the new AC3 sub stream in TrueHD option? I've been testing the Dolby TrueHD Channel Check and another TrueHD sample from here (http://www.demo-world.eu/trailers/high-definition-trailers.php), and I can hear the audio when the truehd 7.1 track is selected, and an AC3 5.1 track is exposed and tagged as [sub], but if I select that AC3 track I hear only silence. The LAV Audio status page shows constant full/maxed out bars on all 6 channels and 16-bit int under decode.
32-bit float output, channel mask looks right, 0x3f as with other AC3 5.1 tracks. Channels, sample rate, codec also looks OK in that status page.
Everything seems normal when the "normal" truehd track is selected.
nevcairiel
20th March 2011, 22:57
The substreams are not new, what is new is the option to hide them. Previously, i would just always show them.
Can you possibly try 0.18 and see if it works there? I might have an idea what could potential have broken it, but i cannot test right now.
Ger
20th March 2011, 23:06
OK. These trailers/test samples are the only truehd content I have so I didn't really try or look for them before (or I forgot).
Anyway, 0.18 works. The audio decoder also shows 32float under decode in 0.18, and not 16int like in 0.19.
nevcairiel
20th March 2011, 23:09
Thanks, i'll fix it for the next version then. Its not that important, no-one should want the AC3 stream when he can have TrueHD :P
Midzuki
21st March 2011, 06:39
Only today I found the will to (start to) test these DLLs. :)
My first impressions:
- it is a source filter and a demuxer at the same time,
why not use two separate "modules" ?
- the "volume meter" of the audio decoder is t00 sl0w :devil: ,
and supports only up to 8 channels ;
- how about including a channel mixer and a frequency resampler ?
nevcairiel
21st March 2011, 08:12
- it is a source filter and a demuxer at the same time,
why not use two separate "modules" ?
Why use two separate modules?
First off, its alot easier to get direct access to the IO then relying on some other filter, second, i didn't really see the big point of separating it yet.
That said, there is a point on the TODO to allow to use a separate source filter for streaming content and whatnot .. but all in due time.
- the "volume meter" of the audio decoder is t00 sl0w :devil: ,
and supports only up to 8 channels
Its not meant to be a real-time statistics display, its just there for debugging, seeing if the audio went to the right channel, and how the channels are flagged.
Also, i have never seen an audio file with more then 8 channels (in fact, it would probably cause funny issues with the decoder in general)
- how about including a channel mixer and a frequency resampler ?
I plan to add channel mixing, possibly. Maybe i could also put that in a dedicated audio post-processing filter. I'm not sure yet what to do, it'll also be a while until i do it.
The decoder itself will not get resampling, the post-processing filter would.
Midzuki
21st March 2011, 08:41
Thanks for answering.
jmone
21st March 2011, 10:24
nevcairiel - quick note to say that I'm really impressed with your splitter and audio decoder. Both are looking rock solid over a range of various content and suit my setup down pat.
Thanks again for your work and I look forward to the Blu-ray support in the splitter.
Nathan
mindbomb
21st March 2011, 19:03
there seems to be a problem with seeking with large matroska files with 24 bit 7.1 dts hd ma audio.
it seems to cause like a memory leak.
I'll see if i can make a sample.
edit: I can't make a sample, the problem keeps fixing itself in samples, argh.
I updated to a newer build of mpc hc, and now it refuses to seek at all.
I know this is quite vague, but perhaps you can make sense of it nev?
Virtual_ManPL
22nd March 2011, 20:47
Try to disable "Fast seek(on keyframe)" in "Tweaks" in MPC-HC options. Maybe this will helps.
mindbomb
22nd March 2011, 21:10
thanks virtual man, but that didn't fix it.
It allowed me to seek through the video again, but playback speed appeared faster than it should have been, with no sound, and it would continue to consume all of my memory. Very similiar to my experience before I updated my player.
nevcairiel
22nd March 2011, 21:13
All DTS-HD files play perfectly for me.
mindbomb
23rd March 2011, 01:54
yea, im not sure what the deal with this file is, i remuxed just the audio into an mka, and it played fine.
Is it alright if I send you a large sample file ?
nevcairiel
23rd March 2011, 08:01
If you can upload it somewhere where i can download it with a reasonable speed..
Snowknight26
24th March 2011, 05:48
The LAV Splitter (x64) causes corruption for a few frames right after seeking:
http://img59.imageshack.us/img59/8084/00002m2tssnapshot001356.png
Tested in MPC-HC; doesn't happen with the Microsoft DTV-DVD Video decoder, only MPC Video decoder.
Sample: http://stfcc.org/misc/lav.splitter.corruption.m2ts
fastplayer
24th March 2011, 10:13
With this sample (http://samples.mplayerhq.hu/A-codecs/AAC/faad2-fail.mkv) [MKV, 1.4MB], LAVSplitter starts 2 instances of ffdshow's audio decoder, one for each language track. Is this intended behavior?
nevcairiel
24th March 2011, 10:20
There is no way it creates 2 pins of the same type. Its just not physically possible.
Are you sure its actually using LAV Splitter and not the MPC-HC internal splitter (which creates one pin for every stream instead of offering a stream switcher)
hoborg
24th March 2011, 10:21
With this sample (http://samples.mplayerhq.hu/A-codecs/AAC/faad2-fail.mkv) [MKV, 1.4MB], LAVSplitter starts 2 instances of ffdshow's audio decoder, one for each language track. Is this intended behavior?
? No problem here...
http://hobring.esero.net/saf/lavf/snap3.png
fastplayer
24th March 2011, 10:28
There is no way it creates 2 pins of the same type. Its just not physically possible.
Are you sure its actually using LAV Splitter and not the MPC-HC internal splitter (which creates one pin for every stream instead of offering a stream switcher)
You're right. I've set up LAVSplitter as preferred, thinking it would override MPC's internal splitters. Apparently, it does not. Sorry for the false alarm!
Edit: Process Explorer confirms this: No LAVSplitter.ax is loaded.
Edit #2: Something similar happens with the internal AAC decoder, too. I have to explicitly disable it in order to use ffdshow's decoder.
nevcairiel
24th March 2011, 11:12
Internal filters have a higher priority then external ones, even if you set external ones to preferred.
I thought that was a widely known fact :D
fastplayer
24th March 2011, 11:18
Internal filters have a higher priority then external ones, even if you set external ones to preferred.
I thought that was a widely known fact :D
It is. I just misinterpreted your recent commit (http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc?view=revision&revision=2973). :o
Ger
24th March 2011, 15:30
Internal filters have a higher priority then external ones, even if you set external ones to preferred.
I thought that was a widely known fact :D
It's not that simple though. The behavior was always inconsistent for me, and it still is to a degree.
Examples:
a) If I set "Microsoft DTV-DVD Video Decoder" to prefer, it will be used for h264 even if both internal h264 decoders are checked. Uncheck Microsoft, and the internal ones will be used.
b) If I set "LAV Audio decoder" to prefer it will be used for AC3 even if the internal AC3 decoder is checked. Uncheck LAV Audio and internal will be used.
c) If I set "LAV Splitter" to prefer it will not be used for TS if the internal MPEG TS splitter is checked. Internal must be unchecked to be able to use LAV Splitter.
I actually like the behavior in a and b better than in the behavior in c, because in a and b prefer always means prefer, and if the connection to the preferred filter fails from some reason then it can fall back to the internal filter since it's still enabled, just not prioritized.
EDIT:
Edit #2: Something similar happens with the internal AAC decoder, too. I have to explicitly disable it in order to use ffdshow's decoder.
This makes it even more inconsistent. Not just a source vs transform filter issue. LAV Audio decoder can be set to prefer even if the internal AAC decoder is enabled. With ffdshow audio set to prefer you still have to disable internal AAC (tested with fastplayer's sample). No wonder this is confusing.
tetsuo55
24th March 2011, 15:49
That is really inconsistent behavior.
This is how it should work:
* The internal filters when enabled should always override any external filter, even when one is preferred.
* When no internal filter is enabled, a preferred external filter should be used.
* When no preference is set, the directshow merits should be used to determine the filter to be used.
IEven these behaviour is uninituitive. If we had a willing developer the whole internal/external filter selection and preferences could be changed into a unified and logical interface.
Ger
24th March 2011, 15:55
* The internal filters when enabled should always override any external filter, even when one is preferred.
I disagree, because of what I said in the previous post. Prefer should always mean prefer which also allows fallback to internal filters if the preferred filter fails.
If an external filter is not set to prefer, then I agree that an internal filter should override any merit set for the external ones.
madshi
24th March 2011, 15:57
@Ger, I think we all agree with that, it just lacks devs to make it work that way.
tetsuo55
24th March 2011, 16:04
The *'ed items are the currently intended behaviour.
As madshi also says, we would all like to see "preferred" override everything.
Ger
24th March 2011, 16:05
nevcairiel fixed the source filter preference recently, so we could always hope he gets inspired again. ;)
nevcairiel
24th March 2011, 16:06
I disable most of the internal filters anyway, it was just a PITA that preferences for source filters were not working at all.
SamuriHL
24th March 2011, 16:12
I have ALL the internal filters disabled, as well. I provide my own. :)
mindbomb
24th March 2011, 18:48
right now, it seems when a source filter is set to prefer, it can't override an internal one, but when a transform filter is set to prefer, it will override an internal one.
I don't mind it too much the way it is now, but I would rather preferred filters always override internal ones.
Also, nev, did you get my large sample?
If not, is there any other way i could send it to you?
nevcairiel
24th March 2011, 19:08
Also, nev, did you get my large sample?
If not, is there any other way i could send it to you?
I got it, well, still downloading the last parts of it.
SamuriHL
24th March 2011, 19:56
So to all that helped me get the ArcSoft video decoder up and running, I wanted to report back on my progress. That checkactivate.dll thing is definitely required whether using a fully installed TMT instance or not. I dropped that in the Codec dir and now the codec works perfectly. I just want to step back for a moment and look at what I now have set up. Just to think about this for a moment. :D MPC-HC...all internal filters are disabled. Audio switcher is disabled. Subtitles are enabled. Renderer is madVR which of course just added subtitle support for MPC-HC hence why I'm using MPC-HC's subtitle support. Video is decoded by ArcSoft or Cyberlink video decoder (depending on my mood I guess) and sent into ffdshow raw video for post processing, before being sent to madVR for rendering. Audio is handled by ffdshow for perfect bitstreaming. Splitting, obviously, being done by LAVF. What this means is that I now have *THE* perfect MKV playback environment!!! I'm actually EXTREMELY happy with this setup right now! To recap:
MPC-HC with subtitles turned on, internal filters turned off
ArcSoft and Cyberlink video decoders
ffdshow audio bitstreaming
madVR renderer
LAVF splitter
Absolutely LOVE IT!
Plutotype
24th March 2011, 21:58
Hi Samuri,
Nice setup. Why do you prefer to use ArcSoft and Cyberlink video decoders and additionally pass them over to ffdshow raw?
Im just curious if Arcsoft decoders doing better job than ffdshow video decoders. Im using ffdshow for H.264/AVC+VC1+MPEG2 decoding and outputting as YV12 to madVR. Is there any PQ improvement or cpu/gpu saving by using your setup?
Thanks
Pluto
SamuriHL
24th March 2011, 22:17
I can honestly say that with the Cyberlink decoder I'm getting great CPU utilization and incredible PQ with the way I have it set up. I'm using ffdshow for resizing when necessary. :D (I.E. DVD's I've remade into MKV's). It's quite outstanding. If what you have works, don't mess with it. I mean, it's simple really...just add the video decoder, set it to prefer, and uncheck ffdshow and compare. If it's not an improvement, go back to your original setup. That's what I've been doing. I wanted to see how the ArcSoft decoder compared. It's not bad, but, I think the Cyberlink decoder works better in this environment. For my bedroom machine I use CoreAVC because the CPU is too slow for video decoding. :( Nonetheless, this setup works PERFECTLY for all videos I've tried it on.
SamuriHL
25th March 2011, 02:12
To get DXVA in Cyberlink to stick, I have to do this:
Open MPC-HC > go to external filters and double-click Cyberlink Decoder > change decoding to DXVA. Then, without closing MPC-HC, drag a VC-1 encoded file into it.
You may also need to add GUID {31435657-0000-0010-8000-00AA00389B71} as a media subtype to MEDIATYPE_Video of CyberLink Video Decoder in MPC-HC's external filter page.
The bad thing about Cyberlink's decoder though: it doesn't seem to work well for VC-1 inside an mkv. For that, Arcsoft's decoder seems best when dealing with interlaced VC-1 (ironically, at least on my system, I get stuttering on progressive VC-1 inside mkv with Arcsoft :confused:).
Ok, I'm now configuring my laptop for DXVA in MPC-HC and I did indeed have to add that mediatype to get DXVA to work. So thanks for that! It wouldn't connect in DXVA without it. Now it works great. I have it setup so I can switch between ArcSoft and Cyberlink decoders on all my machines now. On my main HTPC, I'm still determining what looks best with madVR, but, so far I think Cyberlink has the edge. Testing a movie with ArcSoft decoder now. With my bedroom machine and laptop I've yet to get the Cyberlink decoder to work with DXVA until now, so, I haven't done a good comparison. On the plus side, my bedroom machine is able to use the ArcSoft decoder to play in 24Hz a VC-1 MKV which is damn hard to do. So, I think I'm really getting there with all these machines and my MKV playback. Nev, keep up the most excellent work. I look forward to Blu-ray support. :)
robpdotcom
25th March 2011, 03:26
Glad to hear I could help (that's a rare occurrence for me :rolleyes:).
On my system, it takes much longer to open a VC-1 file with Cyberlink, and interlaced VC-1 is also not as smooth as it is Arcsoft. I'm interested to hear if you have similar results.
SamuriHL
25th March 2011, 03:30
I'll give it a try maybe tomorrow with a VC-1 MKV I have. (Golden Compass blu-ray...created to torture ArcSoft cause they can't play it in an MKV container. Interestingly it can from MPC-HC now. :D) I don't have any interlaced VC-1 content, though. But yea, you definitely helped so thanks. :)
nevcairiel
25th March 2011, 07:59
Classic DXVA disables madVR, which is a no-no, but there are other hardware acceleration solutions.. :)
<teaser>If you're an NVIDIA user, i'll have a treat for you soon.</teaser>
madshi
25th March 2011, 08:08
<teaser>If you're an NVIDIA user, i'll have a treat for you soon.</teaser>
CUDA Decode? :)
nevcairiel
25th March 2011, 08:09
Technically its not using CUDA to decode, just to access the hardware decoder.
I like to call it what NVIDIA calls that interface, a CUVID decoder.
madshi
25th March 2011, 08:23
Yeah, it's looking quite promising, I have the sample on my harddisk, too... :) There's one disadvantage: You'll have to copy the decoded frame back from GPU -> system RAM, but from what I've measured (madNV12Test) that should be very fast (~ 500fps with 1080p content on newer cards), so no real problem.
nevcairiel
25th March 2011, 08:30
Yeah, NVIDIA put real focus on getting data from the GPU back to the CPU, its used alot in CUDA. I didn't actually measure performance when using the CUDA interface to copy the frame back instead of using the D3D functions to read a surface, but i figure it'll not be slower, possibly even faster. A quick test in GraphStudios decoder performance gives me about 70fps in a 1080p H264 file (don't remember the complexity of it right now, though), about the same as CoreAVC in CUDA mode, so i must be doing something right.
I'll post some more measured stats when i release it.
(Oh, the main difference to CoreAVC? In addition to H264, mine supports VC-1, MPEG-2 and MPEG-4 ASP as well - given hardware support, of course.)
madshi
25th March 2011, 08:35
Looking forward to it! I think those 70fps must be limited by the actual decoding performance, not by the GPU -> System RAM copy.
What I found clever is the way NVidia handles the NV12 surfaces: Those allocated for DXVA decoding are optimized for reading. That makes sense because applications will never write to those surfaces, if they access them at all, they will read from them. But NV12 surfaces not allocated for DXVA are optimized for writing instead. Again that makes a lot of sense. Only NVidia has optimized things this way. ATI and Intel have not.
nevcairiel
25th March 2011, 09:15
Looking forward to it! I think those 70fps must be limited by the actual decoding performance, not by the GPU -> System RAM copy.
Indeed.
I learned that the hardware decoder runs the same speed on all cards of the same generation, and is not influenced by the actual clock of the GPU, that makes benchmarking it alot easier, and the values more meaningful.
I'm not sure if the deinterlacing is done in the fixed function hardware or handed over to the shaders, though.
In any case, hardware deinterlaced cheese slice test on madVR = awesome.
Its mostly done, as well.
I only need to work out some kinks with video renderers that request a certain stride, somehow my handling of this is rather wonky right now =)
madshi
25th March 2011, 09:26
Indeed.
I learned that the hardware decoder runs the same speed on all cards of the same generation, and is not influenced by the actual clock of the GPU, that makes benchmarking it alot easier, and the values more meaningful.
I'm not sure if the deinterlacing is done in the fixed function hardware or handed over to the shaders, though.
In any case, hardware deinterlaced cheese slice test on madVR = awesome.
So you plan to do deinterlacing, too? That'd be quite cool, of course! :D
nevcairiel
25th March 2011, 09:27
There is a flag you can set, its values are "weave", "bob" or "adaptive", and then CUVID deinterlaces for you. Nothing you really have to do. Thats why i love CUVID. :)
madshi
25th March 2011, 09:29
Cool. I'm still wondering how IVTC works, though. Do you really get 24fps out of a 60i stream? Who controls the output framerate? Is that your job or does the deinterlacing hardware do that? I think it's your job? So you'd have to offer a switch video (60p/50p output) vs. film (24p/25p output) mode for optimal results?
nevcairiel
25th March 2011, 09:41
I'm quite sure the decoder just outputs 24 frames per second when IVTC'ing NTSC 30fps content (i don't think i have 60i content, i'll check), but i'll run some more tests on that.
The question is if it tells me that its reducing it to 24fps, so i can set the frame rate in the media type appropriately, as i'm not sure if renderers rely on that value, because from where i stand, the frame rate is simply determined by the distance between two frames, not the frame rate in the media type.
madshi
25th March 2011, 10:11
Well, madVR doesn't really care right now what the media type says. However, automatic refresh rate changing might depend on that value being set correctly, so it would be quite useful having it set correctly. If you find out how the decoder behaves exactly with IVTC, I'd love to know. (NTSC 30fps = 60i, it's one and the same)
hoborg
25th March 2011, 10:28
@nevcairiel:
Do you plan to support subtitles rendering too (something like FFDshow DxVA decoder do)?
nevcairiel
25th March 2011, 10:30
Why?
You can use ffdshow in raw mode, or MPC-HCs internal renderer, there are no limitations.
hoborg
25th March 2011, 10:35
Why?
You can use ffdshow in raw mode, or MPC-HCs internal renderer, there are no limitations.
Becouse there are some players that doesn't support subtitles, like nPVR/GB-PVR, WMP too (i think) or have limitations (MediaPortal cannot render PGS), etc...
FFDshow RAW is a solution, but not very "clean".
nevcairiel
25th March 2011, 10:38
Subtitle rendering is annoying, and i probably won't touch it. I use a player that can render them properly scaled on the final image, i don't need to render them on the image before scaling, like ffdshow does.
For people that don't use such players, there are several solutions, ffdshow raw and DirectVobSub should work in most if not all players.
madshi
25th March 2011, 10:49
Agreed, spending time to render subtitles on the decoded image pre-scaling simply makes no sense. Subtitle rendering must be done after scaling for proper quality. Which means that subtitle rendering can not be done in the video decoder.
hoborg
25th March 2011, 11:14
Yes, i understand that.
This is the reason why i use FFDshow video decoder => resize => subtitles rendering => video renderer for SD and
FFDshow DxVA => subtitles overlay => video renderer for HD.
Possibly i can use LAVF video decoder => FFDshow RAW (resize + subtitles rendering) => video renderer, but i am afraid some players won't add FFDshow RAW between LAVF video decoder and renderer.
Looks like i will need to stay using FFDshow after all.
nevcairiel
25th March 2011, 11:20
My video decoder will for the time being only be for NVIDIA, going by your signature, you don't fit that profile.
A general purpose software and DXVA video decoder is in the planning/alpha stage, but don't hold your breath, it might not happen at all, or take a year.
hoborg
25th March 2011, 11:23
My video decoder will for the time being only be for NVIDIA, going by your signature, you don't fit that profile.
A general purpose software and DXVA video decoder is in the planning/alpha stage, but don't hold your breath, it might not happen at all, or take a year.
OK, no problem on my side, i just want to be informed :)
ranpha
25th March 2011, 12:26
Sample is from here (https://github.com/Nevcairiel/LAVFSplitter/issues#issue/3).
The LAV Audio Decoder supposed to support Vorbis tracks right? With the latest version of the decoder, it wasn't used when playing the Vorbis track in the said sample.
nevcairiel
25th March 2011, 13:28
It just supports vorbis when using LAV Splitter as well, with other splitters it will most likely not work due to not supporting the vorbis-specific media format descriptor.
SamuriHL
25th March 2011, 13:53
Classic DXVA disables madVR, which is a no-no, but there are other hardware acceleration solutions.. :)
<teaser>If you're an NVIDIA user, i'll have a treat for you soon.</teaser>
Right, I know. On my bedroom machine and laptop I can't use madVR. They just aren't powerful enough to do software decoding. CoreAVC allows me to do CUDA decoding on the bedroom machine, but, I don't have a solution for VC-1 decoding. So I'm stuck with DXVA on that machine. My main HTPC is a quad core monster and has plenty of power for decoding. Using that with the Cyberlink decoder gives me the best results. And yes, my bedroom machine has an nVidia 450. Am I going to be happy? :)
SamuriHL
25th March 2011, 13:54
Yeah, NVIDIA put real focus on getting data from the GPU back to the CPU, its used alot in CUDA. I didn't actually measure performance when using the CUDA interface to copy the frame back instead of using the D3D functions to read a surface, but i figure it'll not be slower, possibly even faster. A quick test in GraphStudios decoder performance gives me about 70fps in a 1080p H264 file (don't remember the complexity of it right now, though), about the same as CoreAVC in CUDA mode, so i must be doing something right.
I'll post some more measured stats when i release it.
(Oh, the main difference to CoreAVC? In addition to H264, mine supports VC-1, MPEG-2 and MPEG-4 ASP as well - given hardware support, of course.)
OMG! DROOL DROOL DROOL!!!! Oh HELL YEA!!! That's EXACTLY what that machine needs!!!!!!!! You guys ROCK!!!!
clsid
25th March 2011, 14:45
Wow, a nice surprise.
Will it handle incompatible videos properly by falling back to whatever software decoder is installed? Maybe there are CoreAVC users here that have some samples for you that don't work with CUDA.
nevcairiel
25th March 2011, 14:48
That depends. If it can be detected from the header that its incompatible, it'll refuse connection. If some problem occurs during playback, there isn't anything one can do. There isn't really a sane way to let some other filter take over once playback has started.
SamuriHL
25th March 2011, 15:14
Well, I for one am waiting anxiously to get to try this out. It sounds like the perfect solution for my bedroom machine to finally be able to use madVR. We'll see how that thing handles 24Hz playback of my MKV's. You've already given me an almost nearly flawless solution for that anyway, but, this would make it even more impressive. No chance of STREAM being used in the future for those AMD people? :D I'm kidding...no one uses STREAM. LOL!
Mercury_22
25th March 2011, 15:37
I'm about to upgrade my Video card (I was waiting for HD6670 (http://www.amd.com/us/products/desktop/graphics/amd-radeon-hd-6000/hd-6670/Pages/amd-radeon-hd-6670-overview.aspx) :) ) so I'm really interested to know if your decoder it will "do" VC-1 i too ?
Kotik
25th March 2011, 15:55
Well great news indeed.
When/if LAV Video decoder is out, it is going to be the 1st Open Source Video Decoder to support VC-1i + DXVA!
Sounds really promising. My ION is ready for some testing Nev :)
nevcairiel
25th March 2011, 15:57
Its not DXVA, and i haven't decided yet if i should open-source it.
And yes, it supports VC-1 interlaced.
SamuriHL
25th March 2011, 16:01
If you get bitstreaming added to the audio decoder, I won't need ffdshow in the chain anymore. That's pretty scary! :)
Kotik
25th March 2011, 16:08
Nev, i know it is too early to ask but i will ask anyway:)
Are you planning at some point to do the same by using ATI Stream Universal Computing?
Would like your thoughts on this one.
nevcairiel
25th March 2011, 16:13
Are you planning at some point to do the same by using ATI Stream Universal Computing?
No.
First off, you have to realize that its not actually using CUDA to decode. Its just using CUDA to access the hardware decoder, this is done through an extension called CUVID.
That may bring you to the realization that STREAM might not even have such an API to access the video decoder (I actually have no idea if they do).
In any case, i have never owned a AMD/ATI GPU, and i'm not starting now. Also, writing this all over again for another GPU would be like starting over, as the code is very NVIDIA specific, there is barely any code that could be used for another decoder in there - all the heavy lifting is done by the NVIDIA driver and hardware.
SamuriHL
25th March 2011, 16:13
Hey! I already asked that! :P And he ignored me. Probably cause I mentioned that almost NO ONE uses STREAM. It would be nice to have, but, the architectural differences in how they go about video decoding in their respective APIs will mean that it's almost a completely different decoder. So, the question to ask is...are you going to write a decoder that uses STREAM? :)
EDIT: Nev Ninja'd me. :)
ranpha
25th March 2011, 16:33
The upcoming LAV Video decoder, will it support MVC videos too?
nevcairiel
25th March 2011, 16:35
The upcoming LAV Video decoder, will it support MVC videos too?
No.
The current CUVID interface does not support MVC decoding yet.
SamuriHL
25th March 2011, 16:35
I think what Nev is trying to say is that pretty much anything the nVidia cards support he'll be able to do with this driver. It's basically sending the video to the card for hardware decoding and getting the frames shoved back to the CPU. Truly awesome.
EDIT: Ninja'd again. :) Nev, they're not exposing all the functionality of the hardware decoder?? That seems odd.
nevcairiel
25th March 2011, 16:43
Maybe the upcoming CUDA SDK 4.0 supports it, i don't know - i cannot download the RC without registering for their CUDA developers program.
Personally, i'm not that invested in 3D anyhow.
SamuriHL
25th March 2011, 16:47
Fascinating. And no, I'm not doing 3D either even though my bedroom setup (minus the TV) is ready for it. If I got a new TV I could do it but I don't care. I've been struggling to get basic 24Hz MKV playback working since I got the 450. With your latest LAVF, latest MPC-HC, and ArcSoft/Cyberlink decoders, I'm able to do DXVA for 24Hz. That's pretty darn awesome. Your decoder should throw madVR into the mix and that's just frosting on top as far as I'm concerned. :)
madshi
25th March 2011, 16:49
CUDA SDK 4.0 does not support MVC decoding, either.
noee
25th March 2011, 17:15
Not that I'm arguing for it, but isn't this kind of the same thing (limited right now to h.264 and obviously a bit behind CUVID) on the AMD side:
OVD API (pdf) (http://developer.amd.com/gpu/AMDAPPSDK/assets/OpenVideo_Decode_API.PDF)
"The OpenDecode API is the part of OpenVideo that allows applications to use the GPU’s UVD
engine. OpenVideo supports full bitstream decoding acceleration. The decoded output then can
be used for either displaying directly using the GPU, or for other post-processing operations
through Open CL kernels run on the GPU shaders (post-process filtering or transcoding
operations). The OpenVideo API is fully interoperable with the OpenCL API: it allows for shared
surfaces between the two domains."
nevcairiel
25th March 2011, 17:18
Sounds like its similar, maybe someone else feels like doing that then. :p
Kotik
25th March 2011, 17:24
hehe :)
SamuriHL
25th March 2011, 17:36
Not it! :D
madshi
25th March 2011, 18:06
Forget about it with AMD. You can use it, but it's quite similar to DXVA. The NVidia solution allows very fast transfering of the decoded frames back to System RAM, which means that you can create a DirectShow decoder which works similar to a software decoder with no funny limitations. With ATI, there's no fast method to transfer the decoded frames back to System RAM, which means the ATI solution only makes sense if you have a renderer which can directly work with the decoded frames in GPU RAM. That's exactly the same limitation that DXVA has, so the ATI OVD API has no real benefit over DXVA (other than that it supports MVC decoding).
SamuriHL
25th March 2011, 18:28
That's not very useful for what we want, no. You've said you're working on a version of madVR that can work with DXVA, right? So that would mean that all the stuff you do would be on the GPU. But what kind of limitations would that place on you? Would you be constrained by all the things that AMD and nVidia do wrong in DXVA, thus making madVR not as effective as doing software decoding and bypassing all that?
noee
25th March 2011, 18:40
With ATI, there's no fast method to transfer the decoded frames back to System RAM...
Is this architectural or a driver limitation?
madshi
25th March 2011, 18:42
You've said you're working on a version of madVR that can work with DXVA, right?
No, I didn't.
So that would mean that all the stuff you do would be on the GPU. But what kind of limitations would that place on you? Would you be constrained by all the things that AMD and nVidia do wrong in DXVA, thus making madVR not as effective as doing software decoding and bypassing all that?
If I ever implement DXVA support then it will be without quality compromises. Well, except for bugs in the hardware decoders, that will be out of my hands in any case.
madshi
25th March 2011, 18:44
Is this architectural or a driver limitation?
A driver limitation, IMHO. But confirmed by about 40 ATI madNV12Test results I received.
SamuriHL
25th March 2011, 19:00
No, I didn't.
My mistake. Sorry about that.
If I ever implement DXVA support then it will be without quality compromises. Well, except for bugs in the hardware decoders, that will be out of my hands in any case.
That would be some insane magic going on then. :) Even Nev's implementation for nVidia cards is going to be limited by the hardware decoder, so, that part's ok. Although, I care less about DXVA support with madVR if I can get Nev's decoder working on that machine. I'd hate to upgrade that machine just for video decoding as it does most everything I need except for madVR. DXVA would be one way to get it working. Nev's is better since I have an nVidia card in that machine anyway. On my quad core I have an AMD but it's fast enough to handle all software decoding that I've thrown at it. DXVA would just be nice for those that have slower machines that want to take advantage of madVR if they can't use Nev's decoder. (I.E. non nVidia users I guess)
pankov
25th March 2011, 20:16
One big plus on DXVA decoding/rendering is that it can take advantage of the Vector Adaptive Deinterlacing present on both ATI and NVidia.
I just hope that Nev's implementation will support deinterlacing and still work with madVR.
All this talk about nVidia and their advantages in decoding / copying frames back to System RAM forces me to consider changing my video card.
I'd appreciate if you guys ... especially madshi ... share your opinion about AMD/ATI 5750 vs. GeForce GTS 450.
On one side the NVidia card has all the decoding goodies (CUVID) and problems with custom resolutions/timings and black levels and on the other the AMD has support for PowerStrip and working black levels settings but no UVD access.
So which one do you prefer?
nevcairiel
25th March 2011, 20:21
NVIDIA doesn't call it "Vector Adaptive", but yes, you can use Adaptive Deinterlacing with my decoder, it will basically do the deinterlacing while its still in the GPU, directly after decoding, then copy the progressive frame back to system RAM and send it to madVR.
Personally, i don't have any issues with black levels or custom resolutions. The only "problem" i have is that i can't get any better then 23.9766 (target would be 23.9760), but ReClock solves that issue.
I have a GTS 450 in my HTPC.
Also, i'm nearly done now, just fixing some problems in the media type negotiation between the codec and the renderer .. who thought negotiating the stride/pitch would be so complicated to handle.
SamuriHL
25th March 2011, 20:25
Yea, I need to try 23.976 again and see if that solves the very small stuttering I was noticing last night when playing with some of the MKV's I have with DXVA. (I was testing out the Cyberlink decoder's DXVA in MPC-HC...worked well but, as noted, the small stuttering). I set it to 24Hz, though. I should try 23.976 and see if that fixes it. If not, I may have to reinstall ReClock and only use it in MPC-HC.
madshi
25th March 2011, 20:37
I'd appreciate if you guys ... especially madshi ... share your opinion about AMD/ATI 5750 vs. GeForce GTS 450.
On one side the NVidia card has all the decoding goodies (CUVID) and problems with custom resolutions/timings and black levels and on the other the AMD has support for PowerStrip and working black levels settings but no UVD access.
So which one do you prefer?
I can't really say much about it right now. Both NVidia and ATI have their advantages and disadvantages. I might be able to work around some or all of them, or maybe not. Ask me again when madVR has reached v1.0.
who thought negotiating the stride/pitch would be so complicated to handle.
Tell me about it. From the view of the renderer it's just as much a pain as from your view. Every decoder wants to have it differently. I had to make madVR behave somewhat weird to make it work with all decoders. If you have any questions just let me know.
jmone
25th March 2011, 21:59
Hi nevcairiel, are you still looking at a BD release in .20?
mindbomb
25th March 2011, 22:27
my brother discovered a problem file with lav splitter (although, it could be a bug with mpc hc.)
Using the mpc internal subtitle renderer, and lav splitter, the player couldnt play back the subtitles of an .mp4 file with apparently vobsub subs.
Now I was under the impression that you couldn't mux those type of subs into an mp4 to begin with, so i dont know what to make of this.
The splitter was seeing them properly though.
nevcairiel
25th March 2011, 23:12
Hi nevcairiel, are you still looking at a BD release in .20?
Sure, just no idea when it'll be out.
BatKnight
25th March 2011, 23:38
Sure, just no idea when it'll be out.
What about the CUVID implementation? Are you planning on releasing it after the 0.20 or before?
Nuno
nevcairiel
25th March 2011, 23:40
Please redirect all CUVID discussion to the appropriate thread: http://forum.doom9.org/showthread.php?t=160290
adam777
26th March 2011, 00:19
A driver limitation, IMHO. But confirmed by about 40 ATI madNV12Test results I received.
madshi, not to spam this thread too much, but would you mind confirming it with ATI?
I would have done it myself, except I have no idea regarding the technical stuff...
http://developer.amd.com/support/KnowledgeBase/pages/HelpdeskTicketForm.aspx?Category=2&SubCategory=8
madshi
26th March 2011, 08:24
madshi, not to spam this thread too much, but would you mind confirming it with ATI?
No use. Getting a reply from ATI dev support is like winning a lottery. Seems to me if they like the topic they might reply (with long delays, though). If they don't, they simply won't reply at all.
adam777
26th March 2011, 10:58
No use. Getting a reply from ATI dev support is like winning a lottery. Seems to me if they like the topic they might reply (with long delays, though). If they don't, they simply won't reply at all.
:thanks:
Mercury_22
26th March 2011, 17:38
Is Windows SDK v7.1 really necessary for those with VS2010SP1 to compile LAV filters ? (since the problem with VS2010 SP1 & Windows SDK v7.1)
nevcairiel
26th March 2011, 17:42
Is Windows SDK v7.1 really necessary for those with VS2010SP1 to compile LAV filters ? (since the problem with VS2010 SP1 & Windows SDK v7.1)
7.0a should work just fine as well.
That reminds me, i should probably get SP1 at some point.
SamuriHL
26th March 2011, 17:44
7.0a should work just fine as well.
That reminds me, i should probably get SP1 at some point.
Yes, yes you should. :) I need get my dev env setup still. I haven't had time yet. Would like to be able to pitch in here and there.
mindbomb
27th March 2011, 06:16
This 200mb sample is out of sync when played with lav audio decoder:
http://www.megaupload.com/?d=HFYOGAB5
It has flac audio, and I was using lav splitter as well.
also, did you take a look at the really large sample i sent you?
fastplayer
27th March 2011, 09:52
Playing around with LAVAudio and I can't figure out how to properly setup the channel mapping to downmix 5.1 to stereo... :o
With this setup I hear no voices: FL->1, FR->2, FC->1,2, LF->1,2. Obviously, I'm doing something fundamentally wrong...
Edit: Front Center needs to be mapped to channel 3 otherwise it never gets outputted.
nevcairiel
27th March 2011, 10:47
You're playing in the code?
The channel mapping tables do not support mixing, if one number is encountered twice, the previous channel is being overwritten.
fastplayer
27th March 2011, 11:00
You're playing in the code?
The channel mapping tables do not support mixing, if one number is encountered twice, the previous channel is being overwritten.
Sorry for the confusion! I was talking about MPC's audio switcher.
I realized that I don't need to enable custom mapping at all. It sounds the same either way.
Carpo
27th March 2011, 13:05
nevcairiel - is there any chance you could add thumbnail extraction to your splitter? Seeing as haali removed it from his, and i do not like to have to use DivX to do the thumbs, if possible i would like to stay away from MF altogether.
Under linux there is a program called ffmpegthumbnailer, that i used to make the thumbs for all my videos, looks like it could be used on windows too.
There is one mkv i did that causes exporer.exe to have fits when it tries to make a thumbnail for it, yet under Linux it was fine.
Would be a nice feature, but i understand if you would prefer not to add it.
BatKnight
27th March 2011, 13:07
This 200mb sample is out of sync when played with lav audio decoder:
http://www.megaupload.com/?d=HFYOGAB5
It has flac audio, and I was using lav splitter as well.
also, did you take a look at the really large sample i sent you?
I've noticed the same thing. It only happens with LAV Audio and FLAC tracks.
Nuno
mindbomb
27th March 2011, 15:07
Sorry for the confusion! I was talking about MPC's audio switcher.
I realized that I don't need to enable custom mapping at all. It sounds the same either way.
if you using directsound as your audio renderer, it will automatically downmix things to whatever windows is configured for.
diizzy
28th March 2011, 00:14
I've mentioned some of this earlier without response so I'll give it a try again.
Is it intentional that LPCM tracks doesn't connect to either ffdshow and/or MPC-HCs filter (VOBs)?
I also have a few MKVs that loads but doesn't play/show any frame at all (MPC-HC), are compressed headers etc fully supported?
It would also be nice if you could set file types to handle instead of all or nothing since a few features are lacking for at least Matroska such as embedded fonts and compatibilty issues.
I highly appreciate the work going into this project.
Thunderbolt8
28th March 2011, 09:55
does DTS mean HD audio like DTS-HD MA works as well?
and are 2in1 .mkv movie version supported? (those which are originally seamless branching BDs and now work with chapters when being remuxed)
nevcairiel
28th March 2011, 09:57
does DTS mean HD audio like DTS-HD MA works as well?
In the Splitter it works just fine, in the audio decoder only the DTS Core will be decoded, not the HD extensions.
and are 2in1 .mkv movie version supported? (those which are originally seamless branching BDs and now work with chapters when being remuxed)
Not yet, no.
BatKnight
28th March 2011, 18:05
@nevcairiel
Since you are working on the splitter, would you please look into the sync problems of LAV Audio when playing movies with FLAC tracks?
I do a lot of remuxes to FLAC and have a lot of movies with this problem.
Thanks
Nuno
nevcairiel
28th March 2011, 18:23
I don't see the relation between working on the splitter and fixing audio decoder bugs, but okay!
In any case, there are several good FLAC decoders around, and you can configure formats now in LAV Audio .. i'm not exactly sure when i'm going to have time to look into it. I recommend madFlac
BatKnight
28th March 2011, 18:54
I don't see the relation between working on the splitter and fixing audio decoder bugs, but okay!
In any case, there are several good FLAC decoders around, and you can configure formats now in LAV Audio .. i'm not exactly sure when i'm going to have time to look into it. I recommend madFlac
I'm sorry.
I just thought that since LAV Audio is part of the LAV Splitter, that you could look into it.
And yes, madFLAC is a great decoder, and this bug is not urgent. Just a reminder.
Do you have a a bug tracker I could fill for this LAV Audio issue?
Nuno
neoufo51
29th March 2011, 01:46
Just out of curiousity, what's keeping this splitter from being added to MPC-HC right now?
jmone
29th March 2011, 09:42
Hi nevcairiel, thinking outloud with the BD splitter, I understand we will at some point be able to select a playlist (from the mpls) but is there any meta data available to say what each playlist is? Eg. Is there any data in the mpls that will let you display that a particular playlist is say the Std or Extended play etc?
nevcairiel
29th March 2011, 09:45
Hi nevcairiel, thinking outloud with the BD splitter, I understand we will at some point be able to select a playlist (from the mpls) but is there any meta data available to say what each playlist is? Eg. Is there any data in the mpls that will let you display that a particular playlist is say the Std or Extended play etc?
No.
You can get the length, though, which should give you some hints.
They do not contain such data because it usually relys on menus to navigate.
jmone
29th March 2011, 09:59
True - makes "alternative endings" a tough guess however (but we can not have everything!)
jmone
29th March 2011, 10:00
mmmm does the order in the mpls give any clues - eg is the "first" of the longer playlists the "std" one, the second the "alternative ending" etc or is this a very long bow to draw do you think?
nevcairiel
29th March 2011, 10:33
I don't think you can really rely on that.
jmone
29th March 2011, 11:03
I guess we will test and see all in good time
bjd
29th March 2011, 11:58
I don't think you can really rely on that.
You can't - take the seamless branching titles from Pixar with different language variations for the titles such as Wall-E and ToyStory 3. It is almost pot luck whether you get German, French or English :confused:
Kotik
29th March 2011, 13:06
Hello there,
Nev are you planning in adding bit-streaming in the future?
Thanx in advance.
fastplayer
29th March 2011, 13:10
Hello there,
Nev are you planning in adding bit-streaming in the future?
Thanx in advance.
http://forum.doom9.org/showthread.php?p=1425964#post1425964
SamuriHL
29th March 2011, 13:43
Seamless branching is a crapshoot. Basically there's no way to identify what playlist is what. The length is even deceiving at times. The only way to do it properly is with menu support, and for that I suspect you're going to need libbluray integration which I have no idea where that stands. Just basic mpls playback will be great for now so that we don't have to rely on mpc-hc's internal stuff.
nevcairiel
29th March 2011, 13:52
I've been told menu support is "ok-ish", but getting it working in DirectShow is still a crapload of work.
SamuriHL
29th March 2011, 14:14
Not surprising. Bd-j couldn't have been easy to implement, either.
nevcairiel
29th March 2011, 14:37
I'm not sure about BD-J support, i've only seen some infos about HDMV menus. But anyway, thats a topic for another day really.
Just a quick status report on the BD support:
- Languages are being passed on to the stream selector (one disc i had showed only a language for one stream, testing/debugging needed)
- Chapters are exported for selection
- Seamless playback works (at least on the one disc i developed it on, more testing required)
Issues right now:
- Seeking causes some frames to be dropped (takes maybe 1s for playback to stabilize) - but not really a blocker
- Title switching still gives me a headache
SamuriHL
29th March 2011, 15:09
Very nice. When you're ready for testers i'll be ready. :-)
Mercury_22
29th March 2011, 18:37
When trying to compile latest LAV I get "...\libbluray.vcxproj" could not be found.
P.S. I'm downloading the zip source :) and the libbluray folder it's empty
nevcairiel
29th March 2011, 18:38
You need to grab it manually (also, need to grab my modified version):
http://git.1f0.de/gitweb?p=libbluray.git;a=summary
Mercury_22
29th March 2011, 18:42
You need to grab it manually (also, need to grab my modified version):
http://git.1f0.de/gitweb?p=libbluray.git;a=summary
Ok :thanks:
Edit: can you please update the README.txt with this info
nevcairiel
29th March 2011, 19:22
Not much of an update, but i just wanted to let you know that i tested seamless playback on some other discs, and it seems to work just peachy!
Also, i fixed the problem that caused some languages to not show up. =)
I still get a headache from title switching though.
I could release 0.20 without title switching though, that means when you open the index.bdmv with LAV Splitter, it just plays the longest title, which is probably fine for many of the discs out there.
The way i wanted to do title switching initially won't work anymore anyway, so the player will need to be updated to support it, FYI.
What i wanted to do was just list the titles in the stream selector, however with BluRays and their 30 subtitle tracks, thats really not manageable. Plus, MPC-HC crashes when that list reaches a certain amount...
I can probably devise some way to add only the really long titles in there (say anything over 20 minutes, should catch most TV shows as well - or make that value configurable), but preferably i would not add any titles in there at all, and focus on a specific interface to provide titles (in MPC-HC in Navigate -> Jump To probably - i think thats where DVD titles go)
bjd
29th March 2011, 19:26
I still get a headache from title switching though.
Sure that won't be a long term issue for a man of your talents :)
Mercury_22
29th March 2011, 20:06
It seems that the lav splitter still has some problems (with interlaced files :confused:). Here is a sample (http://www.multiupload.com/7J62LD1D0I) which is playing OK with MPC-HC's internal MPEG splitter but with lav splitter it's very "shaky" (almost unwatchable)
SamuriHL
29th March 2011, 20:17
Not much of an update, but i just wanted to let you know that i tested seamless playback on some other discs, and it seems to work just peachy!
Also, i fixed the problem that caused some languages to not show up. =)
I still get a headache from title switching though.
I could release 0.20 without title switching though, that means when you open the index.bdmv with LAV Splitter, it just plays the longest title, which is probably fine for many of the discs out there.
The way i wanted to do title switching initially won't work anymore anyway, so the player will need to be updated to support it, FYI.
What i wanted to do was just list the titles in the stream selector, however with BluRays and their 30 subtitle tracks, thats really not manageable. Plus, MPC-HC crashes when that list reaches a certain amount...
I can probably devise some way to add only the really long titles in there (say anything over 20 minutes, should catch most TV shows as well - or make that value configurable), but preferably i would not add any titles in there at all, and focus on a specific interface to provide titles (in MPC-HC in Navigate -> Jump To probably - i think thats where DVD titles go)
Manually opening the mpls file works, though, right? If so...pretty please? :)
bjd
29th March 2011, 20:46
I could release 0.20 without title switching though, that means when you open the index.bdmv with LAV Splitter, it just plays the longest title
Sounds good to me.
nevcairiel
29th March 2011, 20:49
Manually opening the mpls file works, though, right? If so...pretty please? :)
No, only opening the .bdmv works.
MPC-HC has some funny magic that deals with mpls files and doesnt let a DirectShow splitter get to them, although i could probably turn that off when the mpeg splitter is turned off.
Also, with 100 mpls files, how would you know which one to use anyway.
SamuriHL
29th March 2011, 20:52
No, only opening the .bdmv works.
MPC-HC has some funny magic that deals with mpls files and doesnt let a DirectShow splitter get to them, although i could probably turn that off when the mpeg splitter is turned off.
Also, with 100 mpls files, how would you know which one to use anyway.
Magic. ;) eac3to scanning. :)
nevcairiel
29th March 2011, 20:58
It seems that the lav splitter still has some problems (with interlaced files :confused:). Here is a sample (http://www.multiupload.com/7J62LD1D0I) which is playing OK with MPC-HC's internal MPEG splitter but with lav splitter it's very "shaky" (almost unwatchable)
Plays fine for me, both with EVR-CP (frame time correction on) and madVR.
One thing i did recently notice was that EVR-CP usually needs Frame Time Correction for alot of movies, while madVR just works, this also depends on the decoder being used. I don't know how EVR-CP manages to mess up that badly, though.
I can offer an option to disable the timestamp correction in LAV Splitter, then it'll output the exact same timestamps as the MPC-HC splitter, untouched from the file - but thats not always what you really want.
Matching_Mole
29th March 2011, 20:59
Also, with 100 mpls files, how would you know which one to use anyway.
Using BDinfo, you can know what the differents mpls "contains" and so help to know what mpls I want to play. Not the better way but currently Bdinfo help a lot.
SamuriHL
29th March 2011, 21:03
Using BDinfo, you can know what the differents mpls "contains" and so help to know what mpls I want to play. Not the better way but currently Bdinfo help a lot.
That's the graphical way, sure. Same idea as scanning with eac3to to get the biggest playlists.
nevcairiel
29th March 2011, 21:11
I can offer an option to disable the timestamp correction in LAV Splitter, then it'll output the exact same timestamps as the MPC-HC splitter, untouched from the file - but thats not always what you really want.
Actually, i lied. Offering such an option wouldn't be good. A vital part of that code is that it parses the packages and re-assembles them to form full frames (especially in MPEG-TS the frames are split across packages all the time), and some decoders just do not like getting half frames.
I suggest turning on Frame Time Correction (which is a hacky solution in a even hackier renderer), or get a good renderer like madVR.
Mercury_22
29th March 2011, 21:34
Plays fine for me, both with EVR-CP (frame time correction on) and madVR.
One thing i did recently notice was that EVR-CP usually needs Frame Time Correction for alot of movies, while madVR just works, this also depends on the decoder being used. I don't know how EVR-CP manages to mess up that badly, though.
I can offer an option too disable the timestamp correction in LAV Splitter, then it'll output the exact same timestamps as the MPC-HC splitter, untouched from the file - but thats not always what you really want.
You're right when enabling frame time correction with EVR-CP it's playing fine :thanks:
Also if it's not too much can you look at VC-1 settings cause I cant play any VC-1 (i) with nero decoder (which it's playing fine with MPC-HC's internal mpeg splitter) no matter what setting I choose in LAVSplitter = black screen or freeze video while sound it's playing.
nevcairiel
30th March 2011, 06:51
Also if it's not too much can you look at VC-1 settings cause I cant play any VC-1 (i) with nero decoder (which it's playing fine with MPC-HC's internal mpeg splitter) no matter what setting I choose in LAVSplitter = black screen or freeze video while sound it's playing.
Try disabling the "Enable VC-1 Timestamp Correction" checkbox on the splitters config.
Mercury_22
30th March 2011, 08:46
Try disabling the "Enable VC-1 Timestamp Correction" checkbox on the splitters config.
As I've mention above I've tried all 3 settings including "disable" Also for VC-1 Progressive it seem to work although sometime it shows a green screen then normal image then again green and so on...
nevcairiel
30th March 2011, 09:05
Then the nero decoder is not supported.
With that option disabled, it outputs exactly the same as the MPC-HC splitter.
Mercury_22
30th March 2011, 09:34
Then the nero decoder is not supported.
With that option disabled, it outputs exactly the same as the MPC-HC splitter.
Strange since with MPC-HC's splitter it's working very nice (both VC-1 i & p with 10-bit RGB and no "Enable frame time correction" needed)
Anyway thanks for trying :thanks:
jj666
30th March 2011, 12:20
I have rather a strange issue. All of my files are remuxes from original BD -> .TS with HD audio and PGS subtitles (via EAC3TO/TSMUXER).
Previously, was using an ancient version of Haali splitter in combination with AC3FILTER to bitstream TrueHD and DTS-HD cores to my receiver via Coax.
Now using the LAV splitter, and LAV decoders for both audio and video (CUDA). Obviously the LAV audio decoder doesn't currently bitstream audio, but it's currently decoding fine.
I tried to use FFSHOW audio decoder to bitstream the audio (assuming that it would be able to pass the core and bitstream that to the receiver). Unfortunately, with DTS-HD, FFDSHOW claims that it's receiving a 96hz DTS 7.1 channel track (when in reality its a 48hz DTS 5.1 channel track), this then borks MPC-HC and it doesn't play at all.
Assume that splitting the core audio from HD-audio in the current version isn't implemented? Is that something that could be implemented in the future? If not, it's not a big issue, as the LAV decoder is working and I'm not generally doing much playback on the PC.
Thanks very much for your work on the filters etc, it's allowed me to clean up the system and finally remove the Haali splitter :-)
Cheers,
-jj-
nevcairiel
30th March 2011, 12:23
The splitter will always send the full DTS-HD to the decoder. Why ffdshow gets confused by that, i cannot say. It should manage itself to split the core out of it and bitstream that, although i did read recently that they broke DTS Core bitstreaming out of DTS-HD some time back.
I will offer bitstreaming myself sooner or later, so if decoding works for you and you can be patient ..
jj666
30th March 2011, 12:53
Thanks for your feedback - patience is no problem, like mentioned, I'm not using the PC for much playback anyway (PCH C-200 media player here) and the decoding is working 100% anyway.
Let us know if you decide to accept some form of donations (the CUDA stuff is really great!) in the future.
Cheers,
-jj-
god_md5
30th March 2011, 13:17
hello , i have test some japan ts file have Memory leak(use all the memory),than hang .
and the other ts with dvbsub subtitle is not work well.
dvb with sub
http://www.mediafire.com/?hvs7d05u3voxzpn
but it not have mpc-hc black screen problem
mindbomb
30th March 2011, 13:33
I have rather a strange issue. All of my files are remuxes from original BD -> .TS with HD audio and PGS subtitles (via EAC3TO/TSMUXER).
Previously, was using an ancient version of Haali splitter in combination with AC3FILTER to bitstream TrueHD and DTS-HD cores to my receiver via Coax.
Now using the LAV splitter, and LAV decoders for both audio and video (CUDA). Obviously the LAV audio decoder doesn't currently bitstream audio, but it's currently decoding fine.
I tried to use FFSHOW audio decoder to bitstream the audio (assuming that it would be able to pass the core and bitstream that to the receiver). Unfortunately, with DTS-HD, FFDSHOW claims that it's receiving a 96hz DTS 7.1 channel track (when in reality its a 48hz DTS 5.1 channel track), this then borks MPC-HC and it doesn't play at all.
Assume that splitting the core audio from HD-audio in the current version isn't implemented? Is that something that could be implemented in the future? If not, it's not a big issue, as the LAV decoder is working and I'm not generally doing much playback on the PC.
Thanks very much for your work on the filters etc, it's allowed me to clean up the system and finally remove the Haali splitter :-)
Cheers,
-jj-
you can try the mpc hc internal DTS decoder. set it to spdif.
josey_wells
30th March 2011, 22:13
I tried to use FFSHOW audio decoder to bitstream the audio (assuming that it would be able to pass the core and bitstream that to the receiver). Unfortunately, with DTS-HD, FFDSHOW claims that it's receiving a 96hz DTS 7.1 channel track (when in reality its a 48hz DTS 5.1 channel track), this then borks MPC-HC and it doesn't play at all.
I had this exact same problem. The latest LAV 0.19 and ffdshow from http://www.xvidvideo.ru/ fixed the problem.
jj666
30th March 2011, 23:10
Thanks for the tips guys, much appreciated :-)
Cheers,
-jj-
PaxRoma
31st March 2011, 06:49
I can not seem to get LAVfilter to register. It says dllregister server succeeded but nothing happens. Still cannot play MKV in WMP
Mercury_22
31st March 2011, 09:16
I can not seem to get LAVfilter to register. It says dllregister server succeeded but nothing happens. Still cannot play MKV in WMP
Maybe this is the solution :)
...
Binaries built by me currently require the VC++2010 Runtime (download 32-bit (http://www.microsoft.com/downloads/details.aspx?FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84) & 64-bit (http://www.microsoft.com/downloads/details.aspx?FamilyID=bd512d9e-43c8-4655-81bf-9350143d5867))
...
OR newer Microsoft Visual C++ 2010 SP1 Redistributable Package (x86) (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c32f406a-f8fc-4164-b6eb-5328b8578f03) & Microsoft Visual C++ 2008 SP1 Redistributable Package (x64) (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=BA9257CA-337F-4B40-8C14-157CFDFFEE4E)
or increase the merit or remove (if exist) Haali's
CruNcher
31st March 2011, 19:41
Is the Audio decoder using for every format supported libavcodec and has it 32 bit support like ffdshow and mpc-hc internal filter ?
also using libavformat for the mp4/mov part will it by default support everything it would in mplayer or did you removed fourccs by purpose ? like for example mjpg a/b or PNG support inside .mov :) ?
nevcairiel
31st March 2011, 21:47
If you use LAV Splitter and LAV Audio together, it can decode everything that libavcodec supports. I also added 32-bit float support for AAC, AC3, DTS and MP3. Additionally it should also be possible to add it to Vorbis when i feel like doing it.
The demuxer, in theory, supports everything libavformat supports. If some specific file does not play properly or does not connect to some decoder, it probably needs its DirectShow media type fixed. My sample collection is not infinite, there will always be files that need fixes.
NanoBot
1st April 2011, 00:43
Should the LAVF Splitter already be able to open raw flac files ? It works fine together with ffdshow as flac decoder when I am opening mastroska files containing flac audio tracks. But when I am trying to open a raw flac file I get "cannot render the file" within MPC-HC.
mindbomb
1st April 2011, 04:11
no, it doesnt appear to be a flac source filter.
Works in Graphstudio, so it's probably just not registered for audio-only types (yet). I think Nev mentioned something about that once, but I've forgotten the details.
nevcairiel
1st April 2011, 16:31
no, it doesnt appear to be a flac source filter.
It can be, though!
Do flac ES files have a typical byte marker to detect them?
Thats usually a problem with those elementary stream files..
Edit:
It appears they do, can someone with such a file confirm that the first 4 bytes say "fLaC"?
Checked three files. All start with "fLaC".
madshi
1st April 2011, 17:39
http://flac.sourceforge.net/format.html#stream
nevcairiel
1st April 2011, 19:48
Thanks, i found that too. I was actually looking into adding support for alot more raw audio streams, but not all seem to have an accurate byte marker, so i'll probably hook them up based on extensions. While i'm at it, i'll probably do it for all file types. With MPC-HC, that doesn't really change any behaviour, as extension hookups are not directly prioritized, for other players it could however mean that LAV Splitter gets the priority .. not that it bothers me. =)
madshi
1st April 2011, 20:01
Hopefully you won't overwrite madFlac, though?
nevcairiel
1st April 2011, 20:03
With any sane player, it should come down to what the user configured, or if anything, merit. Now i dunno what the merit of the madFlac source filter is, but LAV Splitter is pretty high.
Edit:
I checked, and the merit of madFlac Source is pretty low (just MERIT_NORMAL), so unless the user configures something, LAV Splitter would be used instead.
Edit2:
It actually looks like you _ONLY_ do extension hookups? no byte markers?
Then it will be overwritten, unless i feel like developing some fancy installer first that could deal with all of this.
madshi
1st April 2011, 20:17
It should be possible somehow to continue using madFlac. If "prefering" madFlac in MPC-HC does the trick, that should be good enough.
nevcairiel
1st April 2011, 20:18
Only you can tell me if it actually registers for the byte markers - i didn't see it in the registry. Of course people can still use the decoder in any case.
Every extension can only have one source filter, while the byte markers are really alot more flexible and every source filter can let DirectShow know that it supports this marker and the merits decide. Thats why i really preferred them until now, and containers typically are easy to detect .. not so much all raw streams.
madshi
1st April 2011, 20:28
So if people install the LAV Splitter first and madFlac after that, madFlac "wins", because madFlac will overwrite the extension registration? I think that would be good enough. There just needs to be a way to use the LAV Splitter and madFlac at the same time. And yes, madFlac must be "allowed" to work as a source filter, too.
I don't think I register for "byte markers", didn't even know that I could... :) But then I've written madFlac quite a while ago, so I don't remember all the dirty details.
nevcairiel
1st April 2011, 20:31
Yes, registering it after LAV Splitter would work.
madshi
1st April 2011, 20:39
Ok, that's good enough for me. Of course before you automatically register (= overwrite) *hundreds* of new extensions it might make sense to write some kind of installer... ;) You can't know for sure that LAV Splitter will match (or beat) every existing DirectShow source filter out there. So maybe it would make sense to cherry pick extensions for now. Just my 2 cents, of course.
v0lt
3rd April 2011, 08:31
@nevcairiel
http://www.multiupload.com/PYBILYB30E
MPC-HC 1.5.2.3010 + LAVFSplitter 0.19 + Microsoft DTV-DVD Video Decoder = wrong speed of video
(internal, ffdshow and ArcSoft decoders are buggy with this video stream)
PS: I do not have enough CPU power to play in VLC media player, but sync is better in VLC.
CruNcher
3rd April 2011, 09:11
Wow v0lt that stream crashed Cyberlinks Decoder to be exactly it caused a crash in the sse3 part :P
AppName: mpc-hc.exe AppVer: 1.5.2.2994 ModName: 264dsse3.dll
something is strange with that stream DXVA mode is giving all kind of nice effects with different Decoder :P
Though currently Halli parse it
Hmm i could swear it uses either intra refresh or a very low keyframe cycle at least visual error wise (it pulses between errors) it looks like it and 6 slices
The internal MPC-HC parser doesn't detect the Video stream @ all ;)
nevcairiel
3rd April 2011, 09:16
Broken streams are just that, broken.
CruNcher
3rd April 2011, 09:39
Not sure if the stream is broken Haali + CoreAVC (CPU) decode it perfect, also via Nvcuvid no problems
Complete Lav Cuvid Framework has also no issues + Haali Splitter
It would make sense if v0lt used DXVA with Microsofts decoder that it's yet another DXVA problem though its different then what you visually see from the to much reference decoding problem
Cyberlin DXVA Decoder + Lav Splitter + Lav Audio + VMR7 windowed = Frame Freeze audio plays ;)
CoreAVC DXVA + Arcsoft Demuxer + Lav Audio + VMR7 windowed = Black Screen audio plays
Cyberlink DXVA + Arcsoft Demuxer + Lav Audio + VMR7/9 windowed/Renderless = Perfect
Cyberlink DXVA + Haali Splitter + Lav Audio + VMR7/9 windowed/Renderless = Crash in Cyberlinks Decoder
CoreAVC DXVA + Haali Splitter + LAV Audio + VMR7/9 windowed/Renderless = Playbacks Video and Audio but with some Visual Errors (slice borders and intra refresh visible)
CoreAVC DXVA + MPC-HC Splitter + LAV Audio + VMR7/9 windowed/Renderless = Audio Plays Video Stream PID not found
I love these Transport Stream Parser issues, especialy in combination with DXVA they can give funny results ;)
So in v0lt case most probably the problem is indeed Lav Splitter in combination with Microsofts Decoder and DXVA, though Cyberlinks Demuxer 2.0 and Arcsofts MPEG Demuxer are more robust they work different (they seem to work directly @ the bitstream level for TS streams and take only some information into account so they can cope welll with corrupt streams, which for Satellite transmission you have no other chance for) then MPC-HC or Gabest Lav Splitter it could be that the muxed ts file here is corrupt ;)
So the CoreAVC DXVA + Haali Splitter result is not bad, especialy as you lose most controll with Arcsoft and Cyberlinks Demuxer in MPC-HC :)
v0lt
3rd April 2011, 10:20
Broken streams are just that, broken.
Maybe, but MediaInfo shows this:
Video
ID : 4113 (0x1011)
Menu ID : 1 (0x1)
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.0
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Duration : 1mn 58s
Bit rate : 11.6 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 25.000 fps
Resolution : 8 bits
Colorimetry : 4:2:0
Scan type : MBAFF
Bits/(Pixel*Frame) : 0.224
Stream size : 164 MiB (81%)
Color primaries : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
Transfer characteristics : BT.709-5, BT.1361
Matrix coefficients : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177
Here we see 25 fps. But LAVFSplitter shows AvgTimePerFrame = 1778. This is equivalent to 5624 fps :)
(25 fps -> AvgTimePerFrame = 400000)
CruNcher
3rd April 2011, 10:43
Was this directly a sat transmission or transcoded could be maybe a Ateme Stream ?
v0lt
3rd April 2011, 11:13
Was this directly a sat transmission or transcoded could be maybe a Ateme Stream ?
I do not know.
Hilary.0000.ts (http://www.multiupload.com/MNHNZJKDOP)
LAV Splitter not play. But WMP is playing.
CruNcher
3rd April 2011, 11:48
The CoreAVC issue seems to be a Render bug on Nvidia Hardware via DXVA on their side, almost any .m2ts stream borks visually out with CoreAVC DXVA and VP2
A new Playback feeling ;)
http://img43.imageshack.us/img43/2044/sliceborders.png
nevcairiel
3rd April 2011, 11:55
That looks like the same problem i had with LAV CUVID in 0.1, heh.
CruNcher
3rd April 2011, 12:04
could be also what is visually seen a slice rendering problem as most x264 streams here also in .m2ts don't Bork out and all have in common that they don't use slices or a combination of slices + mbaff
And as V0lt said that hillary Mpeg-2 Stream Freezes with Lav Splitter + any Decoder even LAV CUVID ;)
Works fine with MPC-HC Splitter, Haali, Arcsoft
Btw that brings me on the question could you add to modular allow to disable libavformat parser in lavsplitter, would make testing easier then to allways register/unregister after the 1000 time you feed up ;)
SamuriHL
3rd April 2011, 13:42
That looks like the same problem i had with LAV CUVID in 0.1, heh.
I was thinking the same thing. :)
Mercury_22
3rd April 2011, 14:23
Using Arcsoft video & audio I'm trying to play a VC-1 i & DTS-Hd Blu-ray (folder) when I open the m2ts file the video it's smooth BUT when I'm opening the index.bdmv the video is very choppy (same setting used as before in MPC-HC and LAVSplitter)
The same index.bdmv it's playing smooth with WMVideo Decoder DMO and Frame time correction ON or using internal splitter with any of the video decoders mentioned without any setting changed (except that for WMVideo Decoder DMO I'm using Frame time correction ON)
P.S. I'm using your latest LAVSplitter (from today VS2010 SP1 & Win 7.1 SDK) and tested all settings in LAV and MPC-HC
SamuriHL
3rd April 2011, 14:29
LAV Filters don't support blu-ray yet, afaik. Nev has been talking about adding it to the next version.
Mercury_22
3rd April 2011, 14:32
LAV Filters don't support blu-ray yet, afaik. Nev has been talking about adding it to the next version.
Any index.bdmv with H264 it's playing fine with LAV !
EDIT again "I'm using latest LAVFSplitter-603e79a from today VS2010 SP1 & Win 7.1 SDK"
SamuriHL
3rd April 2011, 14:41
Ok. Then I guess you'll have to wait for Nev to answer that one. I'm guessing there's probably a reason he hasn't released a new version with that support yet. ;)
nevcairiel
3rd April 2011, 14:53
Using Arcsoft video & audio I'm trying to play a VC-1 i & DTS-Hd Blu-ray (folder) when I open the m2ts file the video it's smooth BUT when I'm opening the index.bdmv the video is very choppy (same setting used as before in MPC-HC and LAVSplitter)
The same index.bdmv it's playing smooth with WMVideo Decoder DMO and Frame time correction ON or using internal splitter with any of the video decoders mentioned without any setting changed (except that for WMVideo Decoder DMO I'm using Frame time correction ON)
Try setting the VC1 timestamp option to completly "off" in the settings. The automatic detection is probably broken right now. Will try to fix it, but i don't have interlaced blurays.
Edit:
Or try with the latest version (7431d08)
Ok. Then I guess you'll have to wait for Nev to answer that one. I'm guessing there's probably a reason he hasn't released a new version with that support yet. ;)
Obviously there is always time between releases where a feature is about done, but not released. As it is with open source, everyone is free to grab the source of those versions and compile it for themself.
In any case, i spent alot of time debugging seamless playback over the weekend, and it should be working perfectly now.
Mercury_22
3rd April 2011, 15:16
Try setting the VC1 timestamp option to completly "off" in the settings. The automatic detection is probably broken right now. Will try to fix it, but i don't have interlaced blurays.
Edit:
Or try with the latest version (7431d08)
Obviously there is always time between releases where a feature is about done, but not released. As it is with open source, everyone is free to grab the source of those versions and compile it for themself.
In any case, i spent alot of time debugging seamless playback over the weekend, and it should be working perfectly now.
YES! it's working with version (7431d08) :thanks:
SamuriHL
3rd April 2011, 15:30
Obviously there is always time between releases where a feature is about done, but not released. As it is with open source, everyone is free to grab the source of those versions and compile it for themself.
In any case, i spent alot of time debugging seamless playback over the weekend, and it should be working perfectly now.
Yea I realized that the second time he said he was using the latest from SVN. sigh. :) I really need to get my damn dev env set up so I can also pull the latest. I just haven't had time. Looking forward to this next release.
v0lt
3rd April 2011, 18:39
@nevcairiel
I was asked to report:
At usage of a system splitter or Haali, audio tracks in files avi in Zoom Player (Ctrl-A) switch normally as soon as I install LAVF, the keyboard shortcut doesn't work, and at switching manually Zoom Player produces a program error
File for check with two audio tracks http://narod.ru/disk/8587018001/test.avi.html
The CoreAVC issue seems to be a Render bug on Nvidia Hardware via DXVA on their side, almost any .m2ts stream borks visually out with CoreAVC DXVA and VP2
Not just Nvidia hardware, but their DXVA implementation in general. I've seen similar issues with other samples and ATI.
Switching CoreAVC (2.5.1) to software mode or using another DXVA decoder solves the problem.
CruNcher
3rd April 2011, 19:59
So a heavy major DXVA bug i wonder how Beta Testers could oversee that one as it makes it DXVA mode practically useless, except you watch only non sliced x264 encodes ;)
PS: I wasn't involved in beta testing so please dont hurt me even if im in the Credits, and to make it clear i don't give you your money back either a wait it was free so :p ;)
Hilary.0000.ts (http://www.multiupload.com/MNHNZJKDOP)
LAV Splitter not play. But WMP is playing.
Nev has said earlier in the thread that streams with multiple programs (multiple SIDs) are not supported yet.
This seems to be one of those, a recording of a complete mux/transponder, not just a single channel. Normally LAV Splitter will play the first program/channel with these streams, but apparently not in this case.
With the internal MPC-HC splitter you can switch between the HD and SD video tracks. With MediaInfo you can even see the name of the channels KNTV-HD and KNTV-SD, so we know it was probably ATSC recorded in the Bay Area, California.
Another interesting thing about this sample is the closed captions. In VLC you can see the lyrics she's singing by enabling the CC subtitles. VLC can handle TeleText and CC, but can't switch between video tracks/programs either and only shows the SD video in this sample.
I have a little feature request (maybe it´s possible manual, I don´t know):
-Selection somewhere which formats should be registered.
I do not want to use it for MPEG-TS, because it cannot handle multiple programs. But I want to use it for WMV, because it can seek in incomplete files (I don´t know any other DirectShow splitter able to that), is there any way to change this manually?
SamuriHL
4th April 2011, 02:50
Alright, I'm trying to get a build env set up finally. Got MSVC 2010 SP1 installed, got GIT integrated, and pulled the source from GIT. When I try to use the GIT link in the readme for ffmpeg I get an error 400. So I pulled it from the main GIT repository. Fine. Libbluray. I don't have an MSVC 2010 solution for it. When I open the LAVSplitter solution that's the error I get. I'm clearly missing something here. Help? :) I'd love to get this building so maybe I can help out once in a while. Thanks!
EDIT: This is what I get when I try to get from the ffmpeg git link in the readme:
c:\Program Files (x86)\Git\bin\git.exe clone -v --progress --branch refs "http://git.1f0.de/gitweb?p=ffmpeg.git;a=summary" "C:/Users/Samuri/Documents/Visual Studio 2010/Projects/LAVFSplitter/ffmpeg"
error: The requested URL returned error: 400 while accessing http://git.1f0.de/gitweb?p=ffmpeg.git;a=summary/info/refs
fatal: HTTP request failed
Cloning into C:/Users/Samuri/Documents/Visual Studio 2010/Projects/LAVFSplitter/ffmpeg...
Done
I'm extremely new to using GIT so forgive me for my stupidity here. And I need to pull the libbluray from Nev's GIT hub, as well, but, I think I have the same issue there so clearly I'm doing something wrong.
Snowknight26
4th April 2011, 03:46
Tried to encode a fake-interlaced VC-1 clip earlier and the LAV splitter spat out "Interlaced frames/fields support is not implemented" in the command prompt, even though it seemed to encode just fine. Is the part of libavfilter that issued the warning even used? I figured it'd be only for decoding, not for parsing the VC-1 header. Seems strange to show that warning yet still work flawlessly. :p
Sebastiii
4th April 2011, 06:34
Alright, I'm trying to get a build env set up finally. Got MSVC 2010 SP1 installed, got GIT integrated, and pulled the source from GIT. When I try to use the GIT link in the readme for ffmpeg I get an error 400. So I pulled it from the main GIT repository. Fine. Libbluray. I don't have an MSVC 2010 solution for it. When I open the LAVSplitter solution that's the error I get. I'm clearly missing something here. Help? :) I'd love to get this building so maybe I can help out once in a while. Thanks!
EDIT: This is what I get when I try to get from the ffmpeg git link in the readme:
c:\Program Files (x86)\Git\bin\git.exe clone -v --progress --branch refs "http://git.1f0.de/gitweb?p=ffmpeg.git;a=summary" "C:/Users/Samuri/Documents/Visual Studio 2010/Projects/LAVFSplitter/ffmpeg"
error: The requested URL returned error: 400 while accessing http://git.1f0.de/gitweb?p=ffmpeg.git;a=summary/info/refs
fatal: HTTP request failed
Cloning into C:/Users/Samuri/Documents/Visual Studio 2010/Projects/LAVFSplitter/ffmpeg...
Done
I'm extremely new to using GIT so forgive me for my stupidity here. And I need to pull the libbluray from Nev's GIT hub, as well, but, I think I have the same issue there so clearly I'm doing something wrong.
Hi m8 :)
I use tortoiseGit, but it should work for you, this is the link i sur for ffmpeg : git://git.1f0.de/ffmpeg.git
Libbluray : git://git.1f0.de/libbluray.git
Lavf : git://github.com/Nevcairiel/LAVFSplitter
:)
Edit : LAst version works like a charm for BD :)
nevcairiel
4th April 2011, 06:51
I'm extremely new to using GIT so forgive me for my stupidity here. And I need to pull the libbluray from Nev's GIT hub, as well, but, I think I have the same issue there so clearly I'm doing something wrong.
Open the links i provided in web browser, it shows the proper cloning URLs on the page that opens.
lav splitter: git://git.1f0.de/lavfsplitter.git (or from GitHub, git://github.com/Nevcairiel/LAVFSplitter.git)
ffmpeg: git://git.1f0.de/ffmpeg.git
libbluray: git://git.1f0.de/libbluray.git
http cloning is not supported from my git hosting page, need to use the git protocol (or ssh if you have access, which only i do :D)
As an alternative, just checkout LAV Splitter, and then run "git submodule update --init", which will download ffmpeg and libbluray from my repositories in the proper location. It can also be used in the future to keep those two modules updated, when/if i update them.
Tried to encode a fake-interlaced VC-1 clip earlier and the LAV splitter spat out "Interlaced frames/fields support is not implemented" in the command prompt, even though it seemed to encode just fine. Is the part of libavfilter that issued the warning even used? I figured it'd be only for decoding, not for parsing the VC-1 header. Seems strange to show that warning yet still work flawlessly. :p
It throws out the warnings when it reads an interlaced header, because the code doing the header parsing is basically the same as the code that does the decoding (if it were to decode..)
I have a little feature request (maybe it´s possible manual, I don´t know):
-Selection somewhere which formats should be registered.
This is on my list of things to do. Sadly there is no easy way to do it manually.
SamuriHL
4th April 2011, 14:43
Thanks guys! I finally got the source downloaded and ffmpeg built with MinGW. (Man that's a chore!) I forgot to install the Win 7.1 SDK (uh, oops) so I've yet to be able to build the MSVC projects, but, I'm making good progress. Hopefully I'll have this built soon so I can start taking a look at it.
EDIT: Or not. My ffmpeg build didn't seem to succeed as well as I thought. I'm missing 'avformat-52.lib'. Guess I have to go work through that again. sigh.
nevcairiel
4th April 2011, 14:55
You can safely switch the sdk to 7.0 (i think its called v100 or something).
Also, use the bundled sh files to build FFmpeg, they create and copy all the required lib and dll files.
SamuriHL
4th April 2011, 15:14
Yea, I've got 7.1 installed now. I had 6.0a or something installed from before. LOL!
Yup, using those. Just didn't have lib.exe and link.exe exposed. I don't get how your build.bat file works, though. In msys, the call to the vc env vars bat doesn't work, and in regular windows cmd line sh isn't exposed. How'd you pull off that bit of magic? :)
nevcairiel
4th April 2011, 15:27
Simply add the mingw base bin path to the global path, or add it into the VS script that sets the env up, so it knows where sh is.
SamuriHL
4th April 2011, 15:29
Yup. I just figured that out. It's been running for a few minutes now. We'll see if this goes any better! :) Thanks for your help. Sorry to be such a newbie on this. I haven't done C++ dev in a while and I was never all that good with mingw/msys. Add this GIT stuff in and woa man. :) I think I got the hang of it now though. Working through these issues is what helps me learn the env.
SamuriHL
4th April 2011, 15:34
OH man! It seemed to build! Using your build.bat that I heavily modified. LOL! (I removed the 64 bit stuff for the moment and added a path statement in there for the mingw/msys stuff.) 3 successful. WOO HOO! At the very least now I can pull the latest code from GIT and build my own. So, again, thanks for the help!!
nevcairiel
4th April 2011, 16:20
The build.bat is just a convenience tool for building releases anyway. Once you have FFmpeg build, you can aswell just build frolm within the dev environment.
SamuriHL
4th April 2011, 16:32
Yea, that's fine. I just wanted to make sure I can build everything from scratch if needs be. I got it all sorted out now. I should get MPC-HC compiling next. I'd like to be able to build all the OSS that I use for MKV playback. Or at least some of it. Maybe even contribute once in a while once I get more familiar with the code.
BullMoose
4th April 2011, 16:51
this may seem like going backwards a little but it is a bit of a challenge for me.
While I have LAVsplitter.ax installed I cannot play mpeg1 files all applications. (PowerPoint and a few others) but it does allow me to play all sorts of more modern files that I cannot play without it.
Is there a way to disable LAVfilters for mpeg1 only?
This is apparently a Windows media Foundation issue. can any point me to any tools or registry keys to look at to adjust the behavior?
Thanks
Kaotech
4th April 2011, 17:57
I've a bug, when i change audio the vidéo block.
There is a keyboard command to change audio ? If i tape "a", the audio don't change with MPC.
Thank you for your help :)
Thunderbolt8
4th April 2011, 22:49
is there actually compability to directvobsub? when I deinstalled haali and installed LAV splitter, directvobsub didnt get loaded any more. would it be possible to add this?
SamuriHL
4th April 2011, 23:43
There. That was a productive day. I have MPC-HC and LAV Filters building now. WOO HOO! Now I just need to keep them all up to date and build them every few days and I can finally have my own personal distribution. :D Thanks for helping me set this up today!
nightfly
5th April 2011, 03:53
I have to say I am impressed by the lav splitter. I have this sample of Avatar I created from a BD iso as a test clip that has always proven difficulty for the mpc gabast splitter. With gabast, I would always have trouble with lip sync.
With lav, no issues. I am able to seek around with perfect lip sync.
Does the "forced subtitles only" option only truly display forced subtitles from a subtitle track or will only play forced sub tracks?
So I am lav-convert now and will be setting up a dev envr up to also test the latest with.
Can't wait for those BD features!
SamuriHL
5th April 2011, 05:02
This rocks. I'm using my newly built lavf splitter to play an index.bdmv. playing perfectly! Thanks for all your work, Nev! Truly appreciated.
SamuriHL
5th April 2011, 05:06
P.s. hey Nev....mpls file playback works!! You so rock! :thanks:
CruNcher
5th April 2011, 05:39
http://www.mediafire.com/download.php?3xjrymbaigi9mpl <- No Audio and Crash when entering Lav Audio Status display
nevcairiel
5th April 2011, 06:40
is there actually compability to directvobsub? when I deinstalled haali and installed LAV splitter, directvobsub didnt get loaded any more. would it be possible to add this?
Its not the splitters job to load any components into the graph. You should convince your player to do so. In MPC-HC for example, i would just add DirectVobSub to the external filter list, and set it to preferred - that would make it always load.
Maybe someone else can comment on how to do it with your player of choice.
Does the "forced subtitles only" option only truly display forced subtitles from a subtitle track or will only play forced sub tracks?
Its meant to select tracks that are marked forced, it cannot split one track that contains both normal and forced subs - the subtitle renderer needs to do that.
There is a keyboard command to change audio ? If i tape "a", the audio don't change with MPC.
This isn't a LAV Splitter bug. MPC-HC is limited to only do it with filters that it knows. I'll add it to the list later.
.mpls file playback works!
Yes, yes it does. Was really easy to get working, too.
I was thinking about running some more tests, and then releasing 0.20, keeping in-player title changes for 0.21. Its already the same BD feature set as the MPC-HC MPEG Splitter, so, yeah. :)
nevcairiel
5th April 2011, 09:15
This isn't a LAV Splitter bug. MPC-HC is limited to only do it with filters that it knows. I'll add it to the list later.
Fixed in MPC-HC r3012
I didn't actually test it, but it should work now. You should be able to use the shortcuts to switch between audio and sub tracks.
clsid
5th April 2011, 11:30
External subs should already work with DirectVobSub. Embedded subtitles requires LAV Splitter to be on a known list of compatible splitters inside the DirectVobSub code. I will commit a patch for it to MPC-HC ;)
Haali splitter has a workaround to forcefully load DirectVobSub. That was added because WMP will sometimes not load any intermediate filters into the graph on its own.
SamuriHL
5th April 2011, 12:00
Yes, yes it does. Was really easy to get working, too.
I was thinking about running some more tests, and then releasing 0.20, keeping in-player title changes for 0.21. Its already the same BD feature set as the MPC-HC MPEG Splitter, so, yeah. :)
I was quite surprised to say the least. :) I was messing around with my wife's glee bd's and figured i'd try it and see what'd happen. It works great with one minor issue. It seems to default to the first sub track when playing an mpls. Not sure if that's a setting in mpc-hc that I have set wrong or if it's the splitter doing it? In any case nice job on that!
Mercury_22
5th April 2011, 12:08
@nevcairiel
Maybe after releasing 0.20 can we expect a MPC-HC LAV branch or even better: LAV splitter and audio added as options to the existing splitters and audio ?
SamuriHL
5th April 2011, 12:15
You think it's ready for integration? Well it certainly matches the internal filters in terms of features. I was hoping for one more feature though. Audio bitstreaming would allow me to remove ffdshow from the chain. And I think there's a few other features on nev's to do list as well. Integration _is_ a good idea but how much work would it take and would we not see any updates while it was worked on?
nevcairiel
5th April 2011, 12:25
It seems to default to the first sub track when playing an mpls. Not sure if that's a setting in mpc-hc that I have set wrong or if it's the splitter doing it? In any case nice job on that!
Hm, subtitle track selection should work similar to how it works with any other files, depending on the setting in the LAV Splitter GUI.
I'll test that later, not sure which setting i had active in my setup, but i see no reason it wouldn't work as expected.
Mercury_22
5th April 2011, 12:28
You think it's ready for integration? Well it certainly matches the internal filters in terms of features. I was hoping for one more feature though. Audio bitstreaming would allow me to remove ffdshow from the chain. And I think there's a few other features on nev's to do list as well. Integration _is_ a good idea but how much work would it take and would we not see any updates while it was worked on?
Since as you say "matches the internal filters" I think it's ready :)
Plus then maybe more people can help with the new features or to "squash", if any, the remaining bugs
Just my 2 c :rolleyes:
SamuriHL
5th April 2011, 12:30
Hm, subtitle track selection should work similar to how it works with any other files, depending on the setting in the LAV Splitter GUI.
I'll test that later, not sure which setting i had active in my setup, but i see no reason it wouldn't work as expected.
I've only tested it on that one Glee disc so far. I was simply testing to make sure I built everything correctly and happened to try the mpls files. Let me know what you find.
SamuriHL
5th April 2011, 12:31
Since as you say "matches the internal filters" I think it's ready :)
Plus then maybe more people can help with the new features or to "squash", if any, the remaining bugs
Just my 2 c :rolleyes:
I'm definitely not against the idea by any means. I know that's a stated goal and quite frankly at this point I have all the internal filters disabled myself. Just wondering how much work that'd be and how much time it'd take.
nevcairiel
5th April 2011, 12:39
Embedded subtitles requires LAV Splitter to be on a known list of compatible splitters inside the DirectVobSub code. I will commit a patch for it to MPC-HC ;)
Thanks!
I've only tested it on that one Glee disc so far. I was simply testing to make sure I built everything correctly and happened to try the mpls files. Let me know what you find.
Well whats your setting in the LAV Splitter config? Full subs, no language preference (which is the default)? That will always get you the first sub track.
@nevcairiel
Maybe after releasing 0.20 can we expect a MPC-HC LAV branch or even better: LAV splitter and audio added as options to the existing splitters and audio ?
Probably not yet.
Integrating it itself is not that hard, the problem is how to do it properly. For a testing period, it would be preferred to offer the ability to choose between the two, possibly on a per-format basis. This would be a major UI redesign, which is really not much fun to do.
I could of course just add one big checkbox that says "Use LAV Filters (where available)", and be done with the UI changes .. but i dunno, some more fine-grained configuration would be better, i think.
There is also the problem with ffmpeg. The version i use is far superior to the version MPC-HC uses, but changing MPC-HCs internal filters (especially video) to use the more recent version will most likely break alot of stuff and be alot of work.
People that want to test it can easily just install the two external libraries, and be done with it, until i'm confident that i can just safely replace the internal filters without worrying about config options.
Anyway, I have some things i want to finish next, before i do anything else. Maybe with those features i could actually call it "1.0"
- BluRay title switching from within the player
- Embedded Font support for MKV (internal MKV splitter can do that)
- Audio Bitstreaming (internal audio decoder can at least do AC3/DTS SPDIF, even if it cannot do HD)
- Sample Format conversion (some audio drivers don't accept the 32-bit float output, should be able to convert it to 16/24 bit integer)
- Stereo downmixing would be a bonus, but not sure how/if to do this.
SamuriHL
5th April 2011, 12:46
Well whats your setting in the LAV Splitter config? Full subs, no language preference (which is the default)? That will always get you the first sub track.
Uhhhhhh, hmmm. :) Yea, I never changed the default so I'm quite sure that's what it's set to. Guess I'll go mess with that. :)
Probably not yet.
Integrating it itself is not that hard, the problem is how to do it properly. For a testing period, it would be preferred to offer the ability to choose between the two, possibly on a per-format basis. This would be a major UI redesign, which is really not much fun to do.
I could of course just add one big checkbox that says "Use LAV Filters (where available)", and be done with the UI changes .. but i dunno, some more fine-grained configuration would be better, i think.
There is also the problem with ffmpeg. The version i use is far superior to the version MPC-HC uses, but changing MPC-HCs internal filters (especially video) to use the more recent version will most likely break alot of stuff and be alot of work.
People that want to test it can easily just install the two external libraries, and be done with it, until i'm confident that i can just safely replace the internal filters without worrying about config options.
Anyway, I have some things i want to finish next, before i do anything else. Maybe with those features i could actually call it "1.0"
- BluRay title switching from within the player
- Embedded Font support for MKV (internal MKV splitter can do that)
- Audio Bitstreaming (internal audio decoder can at least do AC3/DTS SPDIF, even if it cannot do HD)
- Sample Format conversion (some audio drivers don't accept the 32-bit float output, should be able to convert it to 16/24 bit integer)
- Stereo downmixing would be a bonus, but not sure how/if to do this.
That's an awesome list. Just what you've done now has made MPC-HC infinitely more useful for MKV playback for some of us. And now with the BD support it's even better. It's getting to a point where it's really viable to replace my commercial player of choice. These features would only make it that much better.
clsid
5th April 2011, 13:11
Integrating it itself is not that hard, the problem is how to do it properly. For a testing period, it would be preferred to offer the ability to choose between the two, possibly on a per-format basis. This would be a major UI redesign, which is really not much fun to do.
I could of course just add one big checkbox that says "Use LAV Filters (where available)", and be done with the UI changes .. but i dunno, some more fine-grained configuration would be better, i think.
There is also the problem with ffmpeg. The version i use is far superior to the version MPC-HC uses, but changing MPC-HCs internal filters (especially video) to use the more recent version will most likely break alot of stuff and be alot of work.
People that want to test it can easily just install the two external libraries, and be done with it, until i'm confident that i can just safely replace the internal filters without worrying about config options.If the internal filter functionality in MPC is ever redone, I would personally would like to see something like this:
* Filters are no longer embedded, but placed in a configurable external location (by default a subfolder called Filters). Simply check for the presence of a file for it to be listed on the "Internal Filters" page and to be used by MPC.
* Those filters will still be able be used without being registered, just like is done now with the embedded ones.
* Filters can of course optionally be registered to use them in other applications as well. So no need to have both embedded+external installed in such a situation. Less redundancy.
* Filters can now be updated without having to update MPC. Useful for regression testing, but also useful to keep development separated.
* Linking issues when using multiple versions of the same library (ffmpeg) in multiple filters are no longer an issue.
* Support for popular third party filters could be added as well, to use those in unregistered form. Useful for portable use.
* Smaller binary for people who don't use (some of the) internal filters.
SamuriHL
5th April 2011, 13:15
If the internal filter functionality in MPC is ever redone, I would personally would like to see something like this:
* Filters are no longer embedded, but placed in a configurable external location (by default a subfolder called Filters). Simply check for the presence of a file for it to be listed on the "Internal Filters" page and to be used by MPC.
* Those filters will still be able be used without being registered, just like is done now with the embedded ones.
* Filters can of course optionally be registered to use them in other applications as well. So no need to have both embedded+external installed in such a situation. Less redundancy.
* Filters can now be updated without having to update MPC. Useful for regression testing, but also useful to keep development separated.
* Linking issues when using multiple versions of the same library (ffmpeg) in multiple filters are no longer an issue.
* Support for popular third party filters could be added as well, to use those in unregistered form. Useful for portable use.
* Smaller binary for people who don't use (some of the) internal filters.
That would be absolutely ideal! That way people can just drop in the filters they care about, not having to register them, and get the exact functionality they want. YES PLEASE!!! Those who prefer the current filters could still use them. Those that want the "new stuff" could go that route. We still need the external filter page for adding things like Cyberlink or ArcSoft filters or whatever, but, I can definitely get behind this idea!
nevcairiel
5th April 2011, 13:17
I would always vote for keeping the filters seperate, but in the past the MPC-HC team (especially Casimir) always blocked any attempts at splitting it. Apparently having one single .exe that does everything is somehow "better".
In any case, LAV Splitter is not designed to run "embedded", and i won't modify it to do so. Additionally its also not designed to use an embedded ffmpeg. So, yeah, unless the MPC-HC guys change their mind about this, nothing to see here.
I like the idea of simply having the filters in some directory. Although this requires some haxery for source filters, you can't simply figure out which formats they support like you can with a transform filter, so MPC-HC would have to know all the details about them. (Thats why source filters can't be used unregistered in MPC-HC right now)
Making it fully dynamic (like, drop in filter and it gets used) might not be 100% viable, but doing it at least for the "known" filters would work (original internal filters, LAV Filters, some other common filters)
You know, redesigning a key part of MPC-HC like this, could be easier to just write a new player and steal some stuff from MPC-HC. :P
sneaker_ger
5th April 2011, 13:40
Is there a way to set the seeking behavior to the ways Gabest and Haali work? Right now it will only seek to the nearest preceding keyframe and not to arbitrary frames (using Matroska). I didn't find any option to change this.
nevcairiel
5th April 2011, 13:41
Why would you want to seek to a non-keyframe? You can't decode them properly anyway.
SamuriHL
5th April 2011, 13:45
Nev, you were right. I fixed my subtitle issue by changing the default setting. Man I am SO happy with this setup right now! Once title changing is in there I'm very likely to drop my commercial players and just use this now. WELL DONE!
CruNcher
5th April 2011, 14:10
I have to say Amazing .ts .m2ts splitter 98% of test clips play even the ones that MPC-HC Splitter chokes on or Haalis Crash ;)
The Hillary Sample works flawless in switching between the different PIDs though only with Cyberlinks Demuxer 2.0 (the switching is also super fast (instant), MPC-HC Splitter seems to need to get to the next Keyframe first before it switches). Also the DXVA to YUY2 switching for 4:2:2 Mpeg-2 Studio Profile works flawless so supporting decoder use Software Decoding instead of DXVA when getting MEDIASUBTYPE_YUY2 instead of some splitter MEDIASUBTYPE_MPEG2 great :)
sneaker_ger
5th April 2011, 14:12
Why would you want to seek to a non-keyframe? You can't decode them properly anyway.
Works just fine with Gabest and Haali. The decoder gets all the frames it needs to decode the desired frame. Of course seeking can take longer in case the GOP is really long.
nevcairiel
5th April 2011, 14:19
As you said, it actually seeks to the previous I-Frame. By doing this, all timestamps will actually be negative until the desired timestamp is reached. Negative timestamps in DirectShow indicate "Preroll", which should not be shown, but is required to init the decoder.
The alternative would be to simply disable this and seek to any frame directly, not looking for keyframes, GOPs and whatnot. This would not have any benefit to me, as it would only result in broken playback until the next I-Frame. I don't see the point offering this option.
I also don't really care what others do. I do what i think is right, and works. :)
sneaker_ger
5th April 2011, 14:26
I don't know the technical details, although I understand that the decoder needs the previous frames in case I'm not seeking to an I-Frame. But this works just fine using Haali and Gabest. If I seek to the end of a 10 second GOP with Haali, seeking might take a fraction of a second on my quad core. With your splitter I have to watch the entire GOP from start. This also means that you can't seek to chapter starts exactly if they don't start on an I-Frame (for whatever reason).
CruNcher
5th April 2011, 14:37
All the samples that have this *.ts VC-1 setup in order work too http://forum.doom9.org/showpost.php?p=1489582&postcount=16791
and all *.ts ADTS AAC playback flawless with lav audio also something not so common currently :)
nevcairiel
5th April 2011, 14:38
I don't know the technical details, although I understand that the decoder needs the previous frames in case I'm not seeking to an I-Frame. But this works just fine using Haali and Gabest. If I seek to the end of a 10 second GOP with Haali, seeking might take a fraction of a second on my quad core. With your splitter I have to watch the entire GOP from start. This also means that you can't seek to chapter starts exactly if they don't start on an I-Frame (for whatever reason).
I have looked over the Gabest MPEG-TS splitter numerous times, and it really doesn't do anything special, it just seeks to the time requested.
If you really insist, i can add an option to allow frame accurate seeks instead of fast/fluid seeks, but i don't think its what most people want.
All the samples that have this VC-1 setup in order work too http://forum.doom9.org/showpost.php?p=1489582&postcount=16791
You know, its much more interesting to know what does not work, so it can be improved upon.
CruNcher
5th April 2011, 14:45
I have looked over the Gabest MPEG-TS splitter numerous times, and it really doesn't do anything special, it just seeks to the time requested.
If you really insist, i can add an option to allow frame accurate seeks instead of fast/fluid seeks, but i don't think its what most people want.
You know, its much more interesting to know what does not work, so it can be improved upon.
hehe sample above i still look @ some audio issues with some hdpvr Haupauge Recorded streams (doesn't seem to be in sync) i upload those too :)
yep seems to be a issue other splitter work fine and keep it sync also that it goes out of sync with LAV CUVID seems to make it clear it's an valid issue (i mostly carefully check before i see something as a bug or a problem)
so here my problem samples are
http://www.mediafire.com/download.php?4k8lluvvvkxvyuz <- Goes out of sync
http://www.mediafire.com/download.php?3xjrymbaigi9mpl <- No Audio and Crash when entering Lav Audio Status display
also again both of V0lt samples which show issues not only in LAV Splitter
http://www.multiupload.com/PYBILYB30E <- Freezes
http://www.multiupload.com/MNHNZJKDOP <- Freezes
(all of them work flawless in Cyberlinks Demuxer 2.0 it has 100% success rate on all streams (yet to find a stream that doesn't work), also stream switching is instant for the Hilary sample with it)
http://img847.imageshack.us/img847/872/instantstreamswitch.png
Though it has the MEDIASUBTYPE_MPEG2 issue with DXVA and 4:2:2 streams i guess they dont care anyways about other streams they don't support and it would make no sense going to their support with that ;) :( (so currently you have to manually switch of DXVA for those streams :p)
Which btw is also a issue for LAV CUVID see LAV CUVID thread (trying to playback every Bitstream without checking if it would work @ all) ;)
sneaker_ger
5th April 2011, 14:56
I'd appreciate such an option, although I will continue to use Haali for mkv until you support fonts and file linking/ordered chapters. I'm kinda surprised I'm the only one asking because I remember people preferring MPC (or any DS player) over VLC because of the accurate seeking. I guess if you really integrate them into MPC-HC some day more people will ask for it.
One thing where Haali is superior:
You can enter a "combined" priority list for audio and subtitles. That way you can set the player to deactivate subs when there's an audio track with your mother tongue, but activate for a language that's unknown to you for example.
robpdotcom
5th April 2011, 16:38
I will continue to use Haali for mkv until you support fonts and file linking/ordered chapters.
I'm holding out for file linking/ordered chapters as well. I have far too much media that uses it to not be able to take advantage of it.
clsid
5th April 2011, 16:45
I would always vote for keeping the filters seperate, but in the past the MPC-HC team (especially Casimir) always blocked any attempts at splitting it. Apparently having one single .exe that does everything is somehow "better".
In any case, LAV Splitter is not designed to run "embedded", and i won't modify it to do so. Additionally its also not designed to use an embedded ffmpeg. So, yeah, unless the MPC-HC guys change their mind about this, nothing to see here.
I like the idea of simply having the filters in some directory. Although this requires some haxery for source filters, you can't simply figure out which formats they support like you can with a transform filter, so MPC-HC would have to know all the details about them. (Thats why source filters can't be used unregistered in MPC-HC right now)
Making it fully dynamic (like, drop in filter and it gets used) might not be 100% viable, but doing it at least for the "known" filters would work (original internal filters, LAV Filters, some other common filters)
You know, redesigning a key part of MPC-HC like this, could be easier to just write a new player and steal some stuff from MPC-HC. :P
I think the MPC-HC team can be persuaded when they realize the benefits this change would bring. Filters don't need to be registered, so portability is not an issue, which was the main argument for having a single exe.
The functionality will of course be limited to known source filters, so their capabilities are known, and adding new ones like LAVSplitter would be easy. Almost copy/paste work.
The only real new code that would be needed is to detect presence of the filter files. Plus some GUI changes to conditionally show the "internal" filters in the list. Both not very difficult either. Maybe use dropdown menus instead of checkboxes for the time that both old and new filters are included.
One issue that needs to be handled by any multi-format filter is the ability to override any format handling configurations. Meaning the internally loaded one accepts all formats it supports, while the registered filter uses its regular configuration. This is also doable, and already done by the current internal decoders.
Kaotech
5th April 2011, 18:32
Fixed in MPC-HC r3012
I didn't actually test it, but it should work now. You should be able to use the shortcuts to switch between audio and sub tracks.
The shortcut work fine, but the vidéo block when i change audio track.
Did you have an idea ? :o
http://i52.tinypic.com/2rgyiyx.jpg
nightfly
5th April 2011, 18:32
I have looked over the Gabest MPEG-TS splitter numerous times, and it really doesn't do anything special, it just seeks to the time requested.
If you really insist, i can add an option to allow frame accurate seeks instead of fast/fluid seeks, but i don't think its what most people want.
I concur. I want a simple fast and accurate seeking that retains lip sync. Gabest simply isn't able to do this - even on seemingly "problem free" test clips. LAV? no issue what-so-ever with any clip I've thrown at it.
Also, can I convince someone to post the latest filter for download somewhere? I haven't got the dev envr setup yet and am dieing to try the mpls support.
nevcairiel
5th April 2011, 19:18
The shortcut work fine, but the vidéo block when i change audio track.
What do you mean with "block"? Its normal that it'll freeze for a second when you switch track, thats just how the changing is done, but it should continue playing directly after.
Matching_Mole
5th April 2011, 19:26
Hi nevcairiel,
It seems that several people has compiled their own "pre-version" of the next release of your splitter, isn't it? If you need help to test it maybe you can post this "pre-version" and so several other people as me can help you to test the new BD features.
Mercury_22
5th April 2011, 20:03
Hi nevcairiel,
It seems that several people has compiled their own "pre-version" of the next release of your splitter, isn't it? If you need help to test it maybe you can post this "pre-version" and so several other people as me can help you to test the new BD features.
Here you are
Update Nevcairiel-LAVFSplitter-e1f31a5 ("http://www.multiupload.com/MELI8HGPYD)
Matching_Mole
5th April 2011, 20:16
Thanks Mercury_22!
nevcairiel
5th April 2011, 21:42
LAV DirectShow Filters 0.20
LAV Splitter
- Added first BluRay support (see Release Notes or README for more details)
LAV Audio
- Removed static jitter check which caused corruptions in some audio streams
- Improved error resilience - broken streams should now play in many more cases
Download: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.20.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.20-x64.zip)
Somehow the changelog seems so short, but the first point is quite massive, i suppose. Before i start, to use LAV Splitter for BluRays in MPC-HC, you need at least MPC-HC r2980, and turn the internal MPEG Splitter off. That said, here goes.
BluRay support.
There is currently two ways to play a BluRay using LAV Splitter.
1) Open the index.bdmv. This causes LAV Splitter to try to detect the main movie (longest title without loops or duplicate clips). On some collectors edition BluRays this might end up being a title with additional commentary in between (I have one of those, Terminator: Salvation). Sadly there is no way to detect the difference between titles.
2) Open a .mpls file. From the outside, you can't really know which .mpls file is which, unless you use some crafty little tool, like BDInfo or eac3to to figure out which .mpls is what. In any case, just open one, and the title represented by it will be played.
Selecting the title from within the player is up for the next feature release, but this can already fully replace the MPC-HC internal MPEG Splitter.
Seamless playback should be fully supported, and thanks to some more arcane test samples provided by Sebastiii, i was able to make it work in every case. If you have some Seamless BluRay that does not seem to work properly, well .. its not easy to figure out why, but maybe we can work it out.
Seeking on BluRays is currently sadly not as smooth as it is on normal file media, but thats on the list for future improvements.
Last but not least, i took some time today to improve the error resilience in the audio decoder, which should result in it playing samples that seemed broken before. It could however happen, that this introduces new bugs, so please report any regressions.
I also finally updated ffmpeg (yes, i'm sticking to ffmpeg, not libav), which should fix some bugs, improve performance, and all that.
Have fun, and lets hear those bug reports.
Edit:
I forgot to mention, this can only play back unencrypted discs. If you have an encrypted disc, you need to get AnyDVD HD or some other tool that can decrypt them before!
SamuriHL
5th April 2011, 21:48
Thanks, Nev! I've already got it built and will be testing it after work today. :) So far I've had lots of success with the pre-release code.
Snowknight26
5th April 2011, 21:59
Can you build a debug version of the filters? The splitter crashes MPC-HC when trying to open the Blu-ray "9"s index.bdmv.
No video stream is detected for this m2ts: http://stfcc.org/misc/aita.sample.m2ts
Crash with this m2ts: http://stfcc.org/misc/amergang.sample.m2ts
SamuriHL
5th April 2011, 22:00
Darn we just sent that one back to Netflix yesterday. I watched it with my wife on TMT5. That's a shame.
Kaotech
5th April 2011, 22:01
What do you mean with "block"? Its normal that it'll freeze for a second when you switch track, thats just how the changing is done, but it should continue playing directly after.
It's Ok, i've forgotten to register LAVAudio.ax
nevcairiel
5th April 2011, 22:04
Can you build a debug version of the 64-bit filters? The splitter crashes MPC-HC when trying to open the Blu-ray "9"s index.bdmv.
What module does it say it crashes in?
Does it crash with 32-bit? I usually don't test 64-bit much, i just assume it works. ;)
One thing i noticed on some BluRays, ffdshow likes to crash when there is subtitle data before the first video data.
If its crashing, first order of business, try other decoders. Second, try starting the m2ts file itself directly.
I also forgot to mention, this can only play unencrypted discs. I actually have no idea what happens when it hits a still encrypted disc.
Snowknight26
5th April 2011, 22:07
Crashes with both 32- and 64-bit versions. Faulting module is LAVSplitter.ax in each case. Also updated my post with more troublesome samples.
nevcairiel
5th April 2011, 22:16
LAVSplitter.ax. Also updated my post with more troublesome samples.
I fixed the crash issue, although the stream that caused the crash can probably not be played either way - at least the others work fine.
For the other file .. MediaInfo doesn't show any streams either. Thats a weird file...
Edit: nvm, i figured out where the streams are, how silly.
Thanks for the samples, both issues are fixed.
CruNcher
5th April 2011, 22:28
http://www.mediafire.com/download.php?fhrjql6jn453dv5 <- Crashes MPC-HC right after load (seek some seconds) happens with 0.19/0.20
http://img156.imageshack.us/img156/8493/crashafterload.png
nevcairiel
5th April 2011, 22:34
http://www.mediafire.com/download.php?fhrjql6jn453dv5 <- Crashes MPC-HC right after load (seek some seconds) happens with 0.19/0.20
This is not a LAV Splitter issue. It also crashes with the MPC-HC internal Splitter.
The crash is actually because of the subtitles. Configure LAV Splitter to not select any subtitles by default (Subtitle selection Mode to "No Subtitles"), and that file plays just perfectly.
Seems to be a problem with the internal sub renderer.
Sadly ffdshow does not support dvbsubs, so we cannot test it against them for comparison.
CruNcher
5th April 2011, 22:45
I thought something like that as the crash happened when he began to talk and seeing the subtitle being default hehe ;)
http://forum.doom9.org/showpost.php?p=1489996&postcount=1260
the first sample still goes out of sync
the audio plays and the crash is gone with the 2nd sample (it though goes out of sync as well) :)
For V0lts samples both freeze issues reside (though the canal hd sample now plays 1 frame before freezing audio continues for it)
so 1 (partial) out of 4 fixed :)
jmone
5th April 2011, 22:56
Great stuff on the BD support (cross post from the JR Media Center Forum): While I am away with work and can not test, I'm pretty excited about the direct MPLS support as you could in MC, import multiple MPLS from the same stored disc structure, eg the one for the Std Theatrical Release, One for the EE, One for Alternative ending etc depending on your preference. I guess you could also import one for each epesode etc for a disc with multipleTV Shows etc.
If the above is correct you could then just backup your BD collection in folder structures and import what MPLS you want. They will appear as individual titles in MC so from theaterview you can then commence playback of the correct title etc from the existing GUI.
Thanks
Nathan
CruNcher
5th April 2011, 23:13
http://stfcc.org/misc/aita.sample.m2ts <- hehe funny stream
Cyberlink = fails
Arcsoft = works
mplayer = works
vlc = fails
MPC-HC = works
Lav splitter = fails
Snowknight26
5th April 2011, 23:23
Another issue I've noticed is that some films (doesn't matter if it's a single M2TS file or multiple seamlessly-branched ones) go slowly out of sync. I think the desynchronization compounds as you seek more and more, but I've only had the audio be out by +-200ms so it's hard to say whether that's what's causing it.
Providing a large enough sample to reproduce this might be an issue too..
And finally, this sample causes all renderers (tested EVR, VMR9 renderless, etc) but EVR-CP to stutter/play at a half speed: http://stfcc.org/misc/bolt.sample.m2ts
http://stfcc.org/misc/aita.sample.m2ts <- hehe funny stream
Complain to the studios about their apparently superb authoring. :p
Oh and ironically, ffplay plays it fine.
SamuriHL
5th April 2011, 23:38
http://stfcc.org/misc/aita.sample.m2ts <- hehe funny stream
Cyberlink = fails
Arcsoft = works
mplayer = works
vlc = fails
MPC-HC = works
Lav splitter = fails
That's a messed up stream you got there! :D I just tried with the latest code from the repository on my laptop using ArcSoft decoder (DXVA) with EVR-CP....it really doesn't play nicely. :)
EDIT: If I play it on my main HTPC it plays perfect. MPC-HC 3015 MSVC2010(compiled by me), LAV Splitter (also compiled by me in MSVC2010), Cyberlink Video Decoder (HAM on an AMD 5870), and madVR. No issue at all.
EDIT2: I fixed the laptop. I had full floating point processing turned on in the EVR-CP renderer and it didn't like that very much. Turned it to half floating point and it's working nicely now.
CruNcher
6th April 2011, 00:36
Another issue I've noticed is that some films (doesn't matter if it's a single M2TS file or multiple seamlessly-branched ones) go slowly out of sync. I think the desynchronization compounds as you seek more and more, but I've only had the audio be out by +-200ms so it's hard to say whether that's what's causing it.
Providing a large enough sample to reproduce this might be an issue too..
And finally, this sample causes every all renderers (tested EVR, VMR9 renderless, etc) but EVR-CP to stutter/play at a half speed: http://stfcc.org/misc/bolt.sample.m2ts
Complain to the studios about their apparently superb authoring. :p
Oh and ironically, ffplay plays it fine.
That bolt sample works flawless here on VMR9 renderless XP Nvidia Forceware 270.51 G92 VP2 (Lav splitter 0.20)
http://img5.imageshack.us/img5/5370/boltsampledxva.png
Snowknight26
6th April 2011, 01:50
My renderer properties window looks very similar to yours but it's clearly dropping more than half the frames. With EVR-CP and frame time correction off (yes, off), it plays at the less than half the framerate. With it on, EVR-CP is fine. I thought LAVSplitter had some auto detection going on for incorrect timestamps, but the real kicker is that this is H.264, not VC-1 (unless EVR-CP's frame time correction and LAVSplitte's timestamp correction are different things or I'm not fully understanding the matter). As soon as I set Haali Media Splitter to preferred and reopen the video, the issue disappears on all renderers.
When opening a video, the framerate is wrong for about half a second before the video is played at the correct framerate. When the issue occurs, it seems like the timing calculation going on forgets to kick in after half a second is up.
Edit: Confirmed in my VM with default MPC-HC settings. Only EVR-CP with frame time correction on plays the video properly.
CruNcher
6th April 2011, 02:33
ATI/AMD or Nvidia ?
and yeah you can only half trust that status information though the MPC-HC OSD you can trust :)
http://img51.imageshack.us/img51/2844/boltsampledxvaosd.png
here is another problem sample
http://www.mediafire.com/download.php?kvww3jetblg2120 <- No audio its latm
Snowknight26
6th April 2011, 04:30
ATI/AMD or Nvidia ?
AMD on my desktop, but I doubt it's relevant as it occured in a VM, too.
and yeah you can only half trust that status information though the MPC-HC OSD you can trust :)
If only regular EVR had the OSD..
But I digress. I don't want to go too off-topic so I'll wait and see what nevcairiel says.
nevcairiel
6th April 2011, 06:35
The problem is that some decoders, especially hardware based decoders or commercial decoders like Cyberlink/ArcSoft do timestamp fixing/package merging, and LAV Splitter does that too. Now, when its done twice, it can result in funny issues, like you see there.
Interesting fact: Its 100% fine in madVR, go switch already. =)
In a future version, i'll add an option to disable the stream processing in LAV Splitter (similar to the VC-1 option right now, just for all streams). This might cause issues with some of the weirder decoders, but overall it should work better with commercial and hardware decoders.
As a result, the output from LAV Splitter will pretty much match the output of the MPC-HC splitters, and rely on the codecs to do all the heavy lifting.
I will keep the VC-1 option separate, so it'll be like "Enable processing for VC-1" and "Enable processing for all other (video) streams". I don't think doing this kind of processing on audio streams actually hurts, and is actually required for some formats, like aac_latm.
I'll see about adding this in the next version.
I'm quite amazed by the lack of "real" bug reports. That timing thing is nothing new and has been around before, although it mostly manifests with m2ts files, so i guess now with BD support people notice it more often, eh.
In any case, i'll take a look at the other samples provided here and see what there is to be done, and then try to push out 0.21 with the bugfixes, before i start working on new stuff.
Snowknight26
6th April 2011, 07:16
Interesting fact: Its 100% fine in madVR, go switch already. =)
DXVA can be useful at times. :p
I'll see about adding this in the next version.
Glad to hear it.
On a darker note:
Audio stream switching on that bolt.sample.m2ts file causes visible corruption until the next I frame.
nevcairiel
6th April 2011, 07:18
Audio stream switching on that bolt.sample.m2ts file causes visible corruption until the next I frame.
I didn't want to seek back or ahead to the next I-Frame, and if you keep constantly switching audio, you're doing it wrong anyway. =)
Yes, its unfortunate, but it doesn't affect all movies, and i don't know from the top of my head how to fix it properly. Seeking in that situation would most likely cause alot of pain.
Mercury_22
6th April 2011, 07:31
@ nevcairiel since you complain of "the lack of "real" bug reports" here is one :) :
I have a index.bdmv which LAV can't play it at all = MPC-HC : "can't render the file " the BD is BBC's MADAGASCAR UK version
With the same settings and decoders (Arc...) LAV can play the m2ts files and MPC-HC internal splitters can play even the index.bdmv beside the m2ts files
P.S. If you need I can up the index.bdmv and mpls files
nevcairiel
6th April 2011, 07:32
Do other BDs work?
Mercury_22
6th April 2011, 07:35
Do other BDs work?
Yes This is the only one not working (so far :))
adam777
6th April 2011, 07:51
Thanks for 0.20, nevcairiel.
Just a small heads up - you link to 0.19 in the first post (changelog is for 0.20).
nevcairiel
6th April 2011, 08:18
Just a small heads up - you link to 0.19 in the first post
Fixed, thanks.
Yes This is the only one not working (so far :))
This one?
http://www.bbcshop.com/science+nature/madagascar-blu-ray/invt/bbcbd0136/
Too bad it doesn't seem to available on amazon.de yet, they only have the older BBC documentaries.
You wouldn't happen to have one of the older ones, and could test if maybe the error appears there as well?
(Wild China, South Pacific, Galapagos, Nature's Great Events)
Sadly only the bdmv and mpls files don't really help me much. I need to work on an easier way to do debug logging. I should focus on that some time soon.
Mercury_22
6th April 2011, 08:29
Fixed, thanks.
This one?
http://www.bbcshop.com/science+nature/madagascar-blu-ray/invt/bbcbd0136/
Too bad it doesn't seem to available on amazon.de yet, they only have the older BBC documentaries.
YES! That one and two more BBC's Adventures in Architecture DAN CRUICKSHANK & Beyoncé: I Am... Yours - An Intimate Performance at Wynn Las Vegas
EDIT Nature's Great Events & South Pacific are working the other two can't test them now I'll try later if you still want me to
Edit 2: Can't you replace the m2ts files with some random m2ts files if I send you the bdmv and mpls files without the m2ts files ?
nevcairiel
6th April 2011, 08:50
What happens if you try to open a .mpls file directly?
Mercury_22
6th April 2011, 08:52
What happens if you try to open a .mpls file directly?
Same problem! "cannot render the file " but working with MPC-HC's internal splitter
EDIT Galapagos it's working too
Matching_Mole
6th April 2011, 11:22
I have the same issue than Kaotech described : when I changed audio the video seems blocked. Clearly it is linked to Arcsoft Audio decoder.
I used a french BR with two French audio tracks, one in DTS HD and the other in regular DTS (the commentaries of the director). LAV Splitter choose by default the regular DTS track (by the way here maybe you can improve the behavior of you slitter and choose, as the MPC internal Splitter does, the "better track" format so here by default the DTS HD track). I changed it to DTS HD and I got a black screen so I seek in another part of the movies and the video play again correctly but with no more sound except if I choose back the regular DTS track.
If I use LAV Audio, this issue is not present so clearly it is due to Arcsoft Audio Decoder.
nevcairiel
6th April 2011, 12:05
I'll test that later, thanks for the reports.
jmone
6th April 2011, 13:41
While I am away with work and can not test, I'm pretty excited about the direct MPLS support as you could in MC, import multiple MPLS from the same stored disc structure, eg the one for the Std Theatrical Release, One for the EE, One for Alternative ending etc depending on your preference. I guess you could also import one for each epesode etc for a disc with multipleTV Shows etc.
I can confirm that this works just fine in JR MC. Imported the 00000.mpls (Theatrical Version) and 00006.mpls (Alternative Ending) from a folder structure, tagged them up / added coverart etc and now I have one disc structures but 2 versions available from TheaterView. Nice!
hoborg
6th April 2011, 14:43
@nevcairiel:
Thanks for .20!
I added two audio playback related issues in to GitHub project page.
nevcairiel
6th April 2011, 15:28
Same problem! "cannot render the file " but working with MPC-HC's internal splitter
EDIT Galapagos it's working too
Stupid question, but you don't happen to have those BDs in a directory with non-ascii characters in it?
hoborg
6th April 2011, 17:34
@nevcairiel:
Is it possible to use LAVF Audio Decoder for DVD playback?
There is no problem to play VOB files, but if i play "Video_ts.ifo" for example in MPC-HC, it will fall back to "AC3 Audio decoder (low merrit)".
Looks like MS DVD Navigator + LAVF audio decoder refuse connection.
nevcairiel
6th April 2011, 17:36
Not right now, no. It might be, but i didnt really invest any energy in that yet.
hoborg
6th April 2011, 17:43
Not right now, no. It might be, but i didnt really invest any energy in that yet.
Thanks for info.
I think you should add this info to known issues or missing features.
Mercury_22
6th April 2011, 19:11
Stupid question, but you don't happen to have those BDs in a directory with non-ascii characters in it?
:) No I don't
I saw you've made some changes : debugger ? do you want me to use it?
nevcairiel
6th April 2011, 19:14
:) No I don't
Are you sure? that would so neatly explain it. :)
If you can, build the latest version, including the updated libbluray, and see what happens.
If you can run it from inside Visual Studio in debug mode, you would get some output from libbluray in the Output window, which would be helpful in figuring out whats going on.
I'm adding output of that debug infos into a file soon too.
I
I used a french BR with two French audio tracks, one in DTS HD and the other in regular DTS (the commentaries of the director). LAV Splitter choose by default the regular DTS track (by the way here maybe you can improve the behavior of you slitter and choose, as the MPC internal Splitter does, the "better track" format so here by default the DTS HD track). I changed it to DTS HD and I got a black screen so I seek in another part of the movies and the video play again correctly but with no more sound except if I choose back the regular DTS track.
If I use LAV Audio, this issue is not present so clearly it is due to Arcsoft Audio Decoder.
Ok, i tested this, and it seems to work just perfectly. I tested on the german version of the Iron Man 2 BluRay, which has 2 DTS-HD MA Tracks, and one DTS commentary track. I can switch from the HD track to the commentary track, and audio keeps playing. I can switch between the HD tracks no problem. I tried on another file, which had a DTS-HD MA and a AC3 stream - if i switch to the AC3 stream, MPC-HC switches to LAV Audio, when i switch back to the DTS-HD stream, ArcSoft Audio Decoder gets used again. Its working 100% as intended.
Only other reason i could think of would be your player. I do all my tests in MPC-HC, and its working perfectly smooth there.
SamuriHL
6th April 2011, 19:17
Are you sure? that would so neatly explain it. :)
If you can, build the latest version, including the updated libbluray, and see what happens.
If you can run it from inside Visual Studio in debug mode, you would get some output from libbluray in the Output window, which would be helpful in figuring out whats going on.
I'm adding output of that debug infos into a file soon too.
You should make it so we can output to DbgView.exe and capture stuff that way. That's how we helped Albain with the bitstreaming code in ffdshow.
nevcairiel
6th April 2011, 19:19
You should make it so we can output to DbgView.exe and capture stuff that way. That's how we helped Albain with the bitstreaming code in ffdshow.
Why didn't i know about this tool before?
I don't need to do anything, you just need to be running a debug build, and that tool can catch my debug output already. I was using the proper debugging routines for this, just that i normally read them in the VS output panel. :)
SamuriHL
6th April 2011, 19:20
Why didn't i know about this tool before?
I don't need to do anything, you just need to be running a debug build, and that tool can catch my debug output already.
Good question. :D Yea, that's what it was...we needed the debug version. I remember now. It works very well. We spent weeks helping albain using that.
SamuriHL
6th April 2011, 19:23
Right, so, guys who want to help Nev find problems, if you're building your own releases, just build the debug version and use DbgView:
http://technet.microsoft.com/en-us/sysinternals/bb896647
Maybe Nev can provide debug versions to test with, as well, for those who aren't building but would like to help? ;)
nevcairiel
6th April 2011, 19:44
:) No I don't
I figured out whats with your discs, or at least one of them.
It thinks they are still encrypted. I'm not sure if they really are, but it thinks they are.
I disabled the check in libbluray, please update and build a new copy of LAV Splitter and libbluray, and try again.
If that doesn't help, i need the debug logs. :)
noee
6th April 2011, 20:16
I have a reasonable debug env, but I can't (currently) build the project.....anyone wanna shoot me a debug version?
SamuriHL
6th April 2011, 20:31
I have a reasonable debug env, but I can't (currently) build the project.....anyone wanna shoot me a debug version?
http://www.mediafire.com/file/c372832k615835z/LAVFSplitter-samuri-04062011.zip
I just built it from source. It has both 32 and 64 bit debug. I didn't include the bat files for installing or uninstalling.
I could have removed the exps and libs, but, well, I'm lazy. :)
Blight
6th April 2011, 20:48
Hi,
Quick Question:
When creating the LAV Splitter and adding a source file name using the IFileSourceFilter interface. Why does the "Load" function returns a value of "1" (S_FALSE) rather than the usual success code of "0" (S_OK) ?
nevcairiel
6th April 2011, 20:51
Hi,
Quick Question:
When creating the LAV Splitter and adding a source file name using the IFileSourceFilter interface. Why does the "Load" function returns a value of "1" (S_FALSE) rather than the usual success code of "0" (S_OK) ?
Good question. Its fixed in the next version to return S_OK.
Mercury_22
6th April 2011, 20:59
I figured out whats with your discs, or at least one of them.
It thinks they are still encrypted. I'm not sure if they really are, but it thinks they are.
I disabled the check in libbluray, please update and build a new copy of LAV Splitter and libbluray, and try again.
If that doesn't help, i need the debug logs. :)
Working now :thanks: but again the vc-1 i it's very very choppy and I've tested all the new splitter's settings (enable/disable) with the same results (using arcsoft video & audio)
P.S. Frame correction doesn't help either
nevcairiel
6th April 2011, 21:02
The new video stream parsing option will most likely need you to restart the player.
If its set to off, and the VC1 option is off too, and it still doesn't work right, well, nothing else to do.
VC1 is just broken. Either use another decoder, or another renderer. Personally, i have never had any issues with madVR, but of course you cannot use that with DXVA. In EVR-CP, enabling frame time correction seemed to generally fix that problem, but not always. I've had better results with the Cyberlink decoder then the ArcSoft decoder, though.
The commercial decoders are usually designed to work with the other components as well, that is the ArcSoft demuxer and the ArcSoft renderer .. one of those is probably designed to fix that.
Mercury_22
6th April 2011, 21:20
Too bad cause now I can't even play the VC-1 i m2ts file without very "choppy" video not even with WMVideo decoder DMO and Frame correction ON!
nevcairiel
6th April 2011, 21:22
I didn't change anything, really. I just added the option to change it yourself. If you set the VC-1 option to indetermined and the video parsing option to on, it should behave exactly like 0.19 and 0.20 (short of any changes in ffmpeg between those two versions)
Mercury_22
6th April 2011, 21:25
I was using Nevcairiel-LAVFSplitter-83dbb65 I'll try again with Nevcairiel-LAVFSplitter-a263b10 let me compile it and I'll report back
EDIT: It's the same :mad: How is VC-1 i on your end ?
Frame correction helps but it's not as smooth as before I'll test the official 0.2 and I'll report back
Snowknight26
6th April 2011, 21:38
Seeking in this 3 hour long, 70MB M2TS is a bit flaky. Sometimes seeking goes straight to the end, sometimes it doesn't.
http://stfcc.org/misc/amergang2.full.m2ts
Unfortunately for me, this is also the longest playlist on the American Gangster Blu-ray (and as a result, is played when opening index.bdmv).
Also, regarding the out-of-sync-audio issue.. I think it only occurs when LAVSplitter takes a little longer than usual correct the timestamps. I seek in a random file, the video plays at half framerate for almost a second, then it stabilizes, but by then the audio is off by a few hundred milliseconds.
Apart from these minor issues, I love it. :D
nightfly
6th April 2011, 21:48
How are you checking this? Via ctrl-J in mpc? I only get the audio lag field when using evr-sync.
...
Also, regarding the out-of-sync-audio issue.. I think it only occurs when LAVSplitter takes a little longer than usual correct the timestamps. I seek in a random file, the video plays at half framerate for almost a second, then it stabilizes, but by then the audio is off by a few hundred milliseconds.
Apart from these minor issues, I love it. :D
hoborg
6th April 2011, 21:49
About VC-1:
I was not able to play VC-1 (m2ts) with LAVF splitter smoothy too (http://www.volny.cz/hoborg/vc-1i_m2ts_lavf+ffdshow.jpg) - no matter what LAVF timestamps correction are on/off/auto.
Using MPC-HC internal gabest splitter + FFDshow video decoder set to wmv9 = perfect playback (http://www.volny.cz/hoborg/vc-1i_m2ts_gabest+ffdshow.jpg).
So what is doing gabest splitter diferently?
Graphstudio video (http://www.youtube.com/watch?v=8Wwqbweoxjo).
Mercury_22
6th April 2011, 21:52
Just tested the official 0.20 and VC-1 i m2ts and index.bdmv ( except those not working at all :) ) are playing very smooth ! Something got broken since then and now (Nevcairiel-LAVFSplitter-a263b10)
Snowknight26
6th April 2011, 22:59
Any chance of being able to edit LAVSplitter/LAVAudio settings without going through the player? Some DLL entry point such as ffdshow has (configure/configureAudio) would do the trick.
Blight
6th April 2011, 23:30
Hi,
Another question:
After registering LAV Splitter, the "File Source Async" output pin sub-type for AVI changes from "{E436EB88-524F-11CE-9F53-0020AF0BA770}" to "{8489F3C9-15FB-4C8F-A8A7-07D4755F5B88}".
The Microsoft AVI splitter does not recognize this new sub-type and can no longer connect to the "File Source Async" filter. Is it intentional? If so, what is the reason for it and can it be avoided?
nevcairiel
7th April 2011, 06:29
I do not use the file source async, nor do i know how it determines its output pin types. All lavsplitter does is add its mediatypes to the registry, if that is enough to make the file source go all weird on us..
I can try to figure out why its doing that, but i really dont know whats the use of that change, and its not intentional because lav splitter is its own source filter.
As i understand the source filter selection, the File Source should only be used for media types/byte markers it registers itself for. Why would it suddenly start using the media type/byte markers i register for my Source Filter?
How can i ever co-exist with another source filter, if it hijacks my media type, instead of using the media type it itself signed up for?
FWIW, i have not seen these issues in MPC-HC, though. I can disable all internal filters and LAV Splitter, and it does fall back to the windows AVI splitter.
You aren't doing any custom graph building and Async File Source creation that would cause this funnyness, are you?
nevcairiel
7th April 2011, 06:46
Just tested the official 0.20 and VC-1 i m2ts and index.bdmv ( except those not working at all :) ) are playing very smooth ! Something got broken since then and now (Nevcairiel-LAVFSplitter-a263b10)
I think i know what broke, i'll fix it later.
I was not able to play VC-1 (m2ts) with LAVF splitter smoothy too (http://www.volny.cz/hoborg/vc-1i_m2ts_lavf+ffdshow.jpg) - no matter what LAVF timestamps correction are on/off/auto.
I just assume you're using a recent build as well, and not 0.20?
Any chance of being able to edit LAVSplitter/LAVAudio settings without going through the player? Some DLL entry point such as ffdshow has (configure/configureAudio) would do the trick.
I suppose thats possible to add, but not on the list of my most urgent tasks.
hoborg
7th April 2011, 07:26
I just assume you're using a recent build as well, and not 0.20?
I am on official .20 x86 - there is newer available to test? Where?
Matching_Mole
7th April 2011, 08:00
Ok, i tested this, and it seems to work just perfectly. I tested on the german version of the Iron Man 2 BluRay, which has 2 DTS-HD MA Tracks, and one DTS commentary track. I can switch from the HD track to the commentary track, and audio keeps playing. I can switch between the HD tracks no problem. I tried on another file, which had a DTS-HD MA and a AC3 stream - if i switch to the AC3 stream, MPC-HC switches to LAV Audio, when i switch back to the DTS-HD stream, ArcSoft Audio Decoder gets used again. Its working 100% as intended.
Only other reason i could think of would be your player. I do all my tests in MPC-HC, and its working perfectly smooth there.
You're right, with all other blu-ray I tested no issue (and I use also MPC). I thinks it's maybe related more to the fact that in this specific blu-ray the DTS HD is 1.0. No issue with MPC internal splitter but with your splitter, as soon as I change the audio track to the DTS HD 1.0 the video is stopped and no more sound (only with Arcsoft Audio decoder). All back to normal as soon I selected again the regular 2.0 DTS audio Track.
Do you want a sample or something to check from your side?
nevcairiel
7th April 2011, 08:03
I am on official .20 x86 - there is newer available to test? Where?
All reports i ever got said that with 0.19 and 0.20, VC-1 works just fine. You may need Frame Time Correction for EVR-CP, but otherwise it works. It got broken in a recent change (after 0.20)
Do you want a sample or something to check from your side?
If you could upload a short sample of the affected m2ts file, that would be great.
hoborg
7th April 2011, 08:14
All reports i ever got said that with 0.19 and 0.20, VC-1 works just fine. You may need Frame Time Correction for EVR-CP, but otherwise it works. It got broken in a recent change (after 0.20).
It is easy to reproduce.
It happend even with normal EVR in graphstudio. I used EVR-CP only becouse of stats in screenshots.
Should i post you the m2ts sample? I think i already did (http://rapidshare.com/files/456274227/m2ts.VC-1i_DTS.zip).
nevcairiel
7th April 2011, 08:35
Should i post you the m2ts sample? I think i already did (http://rapidshare.com/files/456274227/m2ts.VC-1i_DTS.zip).
I did test that sample when i added that option to disable the VC-1 timestamp correction. If that option is off, it outputs the exact same data packets as the gabest splitter, with one minor difference, that mine have a duration set, and the gabest packets all have a duration of "1".
Sadly, my work laptop is not fast enough to decode it in software, so playback is always rather broken. I will check back when i get home.
Matching_Mole
7th April 2011, 09:29
If you could upload a short sample of the affected m2ts file, that would be great.
here the sample :
http://www.megaupload.com/?d=P7AX1FC2
pankov
7th April 2011, 10:01
You aren't doing any custom graph building and Async File Source creation that would cause this funnyness, are you?
I'm a long time ZoomPlayer user and from my point of view this is actually what ZoomPlayer does and makes it the best player from configuration point of view. We, the users, have total control of what filters (sources/splitters/decoders/renderers) are used for each file type/extension or media subtypes.
If you have the time you can take a look - now that the demo version is back.
But even if you don't I think this is somewhat similar to the MPC-HC's way of configuring preferred filters ... and source filters/splitters ... but I've read somewhere that it doesn't work with source filters. If it was I guess you'll get the same problem if you select the MS AVI Splitter as preferred. Sadly I'm not advanced enough user of MPC-HC and I'm not sure I can test/replicate the problem with it
:o
nevcairiel
7th April 2011, 10:05
I'm a long time ZoomPlayer user and from my point of view this is actually what ZoomPlayer does and makes it the best player from configuration point of view.
In any case, after double checking the matter, i do nothing that i'm not supposed to do. I strictly follow the way a source filter is supposed to register itself. MPC-HC deals with it just fine, if other players don't - i blame them, or at least can't help them unless they tell me what is happening exactly.
pankov
7th April 2011, 10:10
nev,
don't get me wrong, I'm not blaming you for anything.
I'm just begging/hoping you and Blight can sort it out, 'cause we ZoomPlayer users really miss your splitter.
I'm very grateful for all your work.
btw
can you post a test build with the fix, you've made for the return value of the Load routine?
edragon
7th April 2011, 10:34
the lav audio decoder when playing flac file couses corruptions
nevcairiel
7th April 2011, 10:51
the lav audio decoder when playing flac file couses corruptions
The avcodec flac codec does not seem to be really that good. I recommend a decoder using libflac, like madFlac, for example.
I will probably turn flac support off by default in the next version, until i can decide how to solve this.
Blight
7th April 2011, 11:10
I do not use the file source async, nor do i know how it determines its output pin types. All lavsplitter does is add its mediatypes to the registry, if that is enough to make the file source go all weird on us..
I can try to figure out why its doing that, but i really dont know whats the use of that change, and its not intentional because lav splitter is its own source filter.
As i understand the source filter selection, the File Source should only be used for media types/byte markers it registers itself for. Why would it suddenly start using the media type/byte markers i register for my Source Filter?
How can i ever co-exist with another source filter, if it hijacks my media type, instead of using the media type it itself signed up for?
FWIW, i have not seen these issues in MPC-HC, though. I can disable all internal filters and LAV Splitter, and it does fall back to the windows AVI splitter.
You aren't doing any custom graph building and Async File Source creation that would cause this funnyness, are you?
You can reproduce this issue in GraphEdit by pointing the "File Source Async" to an AVI file with and without LAV Splitter being registered (no other filters in the graph).
My guess is that it's related to the registry changes.
It is possible to have multiple source filters for the same content without this side-effect. For example, this problem doesn't occur if I register the MPC AVI Splitter (standalone filter).
I don't believe MPC-HC fall back to the windows AVI splitter, I think it falls back to the MPC AVI Splitter (which is able to connect with the new sub-type).
nevcairiel
7th April 2011, 11:12
It is possible to have multiple source filters for the same content without this side-effect. For example, this problem doesn't occur if I register the MPC AVI Splitter (standalone filter).
The MPC AVI Splitter is a splitter, not a source filter. It uses the File Source Async.
I basically have two choices (and a third one thats alot more work to implement)
- Use my own subtype like i always did, which works fine with most other source filters, like Haali, etc, but according to you breaks the File Source (async).
- Use the "official" subtypes for common formats like AVI, overwriting the previous source filter in the registry.
(- Support using the File Source (async) and use LAV Splitter only as a splitter.)
The second way might work with the File Source (async), because players typically use some special code that loads it when no other source filter is found, but it does not allow registering two source filters for the same file type. I can register Haali as well, how does it deal with that?
I suppose it would not affect that many types, really only the file types MS offers splitters for, that is AVI, their WMV formats, and thats it?
I could live with the second option, if it only affects AVI, and maybe 1-2 other types.
Sebastiii
7th April 2011, 11:18
here the sample :
http://www.megaupload.com/?d=P7AX1FC2
Salut :) I will test this sample too :)
Merci,
Seb.
Blight
7th April 2011, 14:38
The MPC AVI Splitter is a splitter, not a source filter. It uses the File Source Async.
I basically have two choices (and a third one thats alot more work to implement)
- Use my own subtype like i always did, which works fine with most other source filters, like Haali, etc, but according to you breaks the File Source (async).
- Use the "official" subtypes for common formats like AVI, overwriting the previous source filter in the registry.
(- Support using the File Source (async) and use LAV Splitter only as a splitter.)
The second way might work with the File Source (async), because players typically use some special code that loads it when no other source filter is found, but it does not allow registering two source filters for the same file type. I can register Haali as well, how does it deal with that?
I suppose it would not affect that many types, really only the file types MS offers splitters for, that is AVI, their WMV formats, and thats it?
I could live with the second option, if it only affects AVI, and maybe 1-2 other types.
The MPC AVI Splitter contains two two filters "MPC - Avi Splitter" and "MPC - Avi Source".
The AVI Source filter, works like LAV Splitter, but doesn't take over the registry entries.
This probably causes it to never load by default if DirectShow itself is building the graph, but still allows it to be used if a player/user wants it.
Is it possible to make the AVI registry entries optional during the LAV install, with a default of not applying the registry changes for AVI?
This way, users who still want LAV AVI support can select to enable it during the install, but by default, LAV Splitter will maintain backwards compatibility with the windows AVI Splitter.
nevcairiel
7th April 2011, 14:50
The MPC AVI Splitter contains two two filters "MPC - Avi Splitter" and "MPC - Avi Source".
Thats the key to all that, it does have a Source, but its never used. DirectShow will *never* load it by default, unless you force it.
Is it possible to make the AVI registry entries optional during the LAV install, with a default of not applying the registry changes for AVI?
This way, users who still want LAV AVI support can select to enable it during the install, but by default, LAV Splitter will maintain backwards compatibility with the windows AVI Splitter.
In case you haven't noticed, there isn't much of an installer. If there was, that would be an option.
I still think that i'm doing it 100% right - the Async File Source is not registered as a source filter for my Subtype, so why does it use it? I just add keys to the registry, i don't modify any existing ones.
Like i said in my previous post, i can change it so that my source uses the same subtype for AVI that the MS AVI Splitter expects. Personally i don't like that way very much, because it doesn't allow you to easily install two source filters next to each other, but it would "fix" the media type of the Async File Source.
But, then i ask myself, why would anyone want to? The MS AVI Splitter doesn't really have any magnificient features that mine or the MPC-HC AVI Splitter does not have.
Anyway, i'll change it so that it uses the default AVI type, and not my custom one.
One question that keeps popping up: Does the File Source (async) output custom media types for any other files? Usually it just spits out MEDIASUBTYPE_NULL (except for AVI, apparently), unless some registry entry like mine confuses it.
Edit: Looks like the Windows internal MPEG-1 and MPEG-2 Demultiplexer also uses it, can throw all MPEG types into there apprioriate categories as well, i guess.
The WMV splitters don't use the File Source (Async), so they don't care.
clsid
7th April 2011, 15:25
I will probably make a installer next week, or maybe tomorrow if I have some time. That will be able to configure which formats the splitter handles.
For those who like to experiment with using the splitter for formats for which it isn't registered by default. You can force its use for a file extension with this tweak:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Media Type\Extensions\.xyz]
"Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}"
Post your findings here. Then I can add options to the installer for working formats.
nevcairiel
7th April 2011, 16:10
Here is what i'll do:
- First, i'll set the AVI subtype i use to the one MS uses, which will allow the MS AVI Splitter to still be used, and should solve the problem at hand.
- At a later stage, i'll allow using LAV Splitter with another source filter (File Source (Async) or other streaming sources), and make that the default mode for most single-file based formats (BluRay will require to always use as a source filter), unless some player directly requests source filter usage (which would be more efficient)
- Aside from those changes, I'll evaluate options for installers.
The first will go in .21, the second in a yet unknown revision (soon).
nevcairiel
7th April 2011, 16:29
It is easy to reproduce.
It happend even with normal EVR in graphstudio. I used EVR-CP only becouse of stats in screenshots.
Should i post you the m2ts sample? I think i already did (http://rapidshare.com/files/456274227/m2ts.VC-1i_DTS.zip).
I did test that file again, and yes, it does not work perfect with ffdshow in wmv9 mode, however the glitches are really very minor, at least with my development version here.
I see 9 dropped frames, just at the beginning of the movie, everything else seems "ok". This is with EVR-CP and Frame Time Correction on, VC-1 timestamp option on "Auto" in LAV Splitter.
It also seems fine in madVR.
It does however play perfect with the following:
- LAV CUVID Decoder
- Cyberlink PDVD Decoder
- ArcSoft Video Decoder
I admit that VC-1i is not fully supported, therefor i just call it broken until ffmpeg supports VC-1i. There are a multitude of decoders available that do support it, including the standard windows decoder.
Personally, i don't see the point of ffdshow in wmv9 mode anyhow. Its the same decoding as the WMVIdeo Decoder DMO, just in another packaging.
Btw, weren't you one of those that made me write the compat mode for the Cyberlink decoder for VC-1 anyway? :d
SamuriHL
7th April 2011, 16:37
Personally, i don't see the point of ffdshow in wmv9 mode anyhow. Its the same decoding as the WMVIdeo Decoder DMO, just in another packaging.
Yea, I don't understand that one, either. I guess it's convenient in that you can just specify the ffdshow decoder and it'll handle it, but, it's a bit redundant.
Snowknight26
7th April 2011, 16:51
Personally, i don't see the point of ffdshow in wmv9 mode anyhow. Its the same decoding as the WMVIdeo Decoder DMO, just in another packaging.
There's an odd issue where any graph with the WMVideo Decoder DMO times out, whereas it doesn't with ffdshow set to use wmv9.
hoborg
7th April 2011, 17:05
I did test that file again, and yes, it does not work perfect with ffdshow in wmv9 mode, however the glitches are really very minor, at least with my development version here.
I see 9 dropped frames, just at the beginning of the movie, everything else seems "ok". This is with EVR-CP and Frame Time Correction on, VC-1 timestamp option on "Auto" in LAV Splitter.
It does however play perfect with the following:
- LAV CUVID Decoder
- Cyberlink PDVD Decoder
- ArcSoft Video Decoder
I admit that VC-1i is not fully supported, therefor i just call it broken until ffmpeg supports VC-1i. There are a multitude of decoders available that do support it, including the standard windows decoder.
Personally, i don't see the point of ffdshow in wmv9 mode anyhow. Its the same decoding as the WMVIdeo Decoder DMO, just in another packaging.
Btw, weren't you one of those that made me write the compat mode for the Cyberlink decoder for VC-1 anyway? :d
Thanks for test.
That is a mystery for me ... :(
Why ffdshow in wmv9? Subtitles, keyboard shortcuts to control audio/subtitles switching, postprocessing, etc...
And yes, that was i (about Cyberlink decoder). Gabest can do both (Cyberlink+FFDshow) without any problem, LAVF, sadly, can't :/
nevcairiel
7th April 2011, 17:16
There is one more thing that i can do that should make the VC-1 output from both gabest and LAV Splitter identical, but i don't know when i'll have time, its actually a bit more complex.
Mercury_22
7th April 2011, 18:17
With Nevcairiel-LAVFSplitter-c6eb3f6 I have VC-1 i smooth again and all index.bdmv are playing :):thanks:
P.S. Maybe it's just my impression but it still doesn't seem as smooth as before (or MPC-HC's internal), again it's just a visual impression :p
nevcairiel
7th April 2011, 18:35
Thanks for test.
That is a mystery for me ... :(
Why ffdshow in wmv9? Subtitles, keyboard shortcuts to control audio/subtitles switching, postprocessing, etc...
And yes, that was i (about Cyberlink decoder). Gabest can do both (Cyberlink+FFDshow) without any problem, LAVF, sadly, can't :/
I made it output 100% exactly the same data, yet ffdshow is only smooth with the MPC-HC Splitter. I think its something hidden in ffdshow. :(
Or something that my logging filter does not catch, but its still weird.
What i see now is perfect playback, except, the first few seconds, 64 frames are dropped. After that, its just perfect, as long as i keep FTC on. If i turn FTC off, its horrible - however for some reason, its ok when using the gabest splitter.
I can't figure out why. The output of both splitters is 100% identical, it must be something in ffdshow that treats data differently if its from the MPC-HC splitter.
hoborg
7th April 2011, 19:11
I made it output 100% exactly the same data, yet ffdshow is only smooth with the MPC-HC Splitter. I think its something hidden in ffdshow. :(
Or something that my logging filter does not catch, but its still weird.
What i see now is perfect playback, except, the first few seconds, 64 frames are dropped. After that, its just perfect.
I can't figure out why. The output of both splitters is 100% identical.
Thanks for your efort.
I think this VC-1i issue is not that important after all.
Cay you share your test build?
I just hit some ugly xvid stuttering issue. This sample (http://rapidshare.com/files/456362292/xvid_sample.zip) play choppy/corupted if it is splitted by .20 LAVF + FFDShow libavcodec/ffmpeg-MT - FFDShow xvid (ffdshow_rev3811_20110406_xvidvideo-ru_x86-msvc2010.zip) working just fine.
No problem if MatroskaSplitter.ax is used with all decoders.
nevcairiel
7th April 2011, 19:30
I just hit some ugly xvid stuttering issue. This sample (http://rapidshare.com/files/456362292/xvid_sample.zip) play choppy/corupted if it is splitted by .20 LAVF + FFDShow libavcodec/ffmpeg-MT - FFDShow xvid (ffdshow_rev3811_20110406_xvidvideo-ru_x86-msvc2010.zip) working just fine.
No problem if MatroskaSplitter.ax is used with all decoders.
Again, the output of both splitters is exactly the same (if i turn off stream parsing), yet it still stutters. Well actually, its 99.9% the same on this sample, the duration of the very first frame is different, but that won't cause the whole file to break down.
http://files.1f0.de/Dump.zip
Thats my modified Dump filter, which you can just connect in GraphStudio to a output pin, and it'll write whatever it gets into a text file.
Doing so for the mkv or the vc-1i m2ts from before will yield nearly the same output (the absolute time values will be different every run, of course), yet playback is like day and night with ffdshow. (You won't be able to get the same output with 0.20, but with 0.21 you will)
If someone from the ffdshow guys wants to speak up, please do.
nevcairiel
7th April 2011, 19:46
LAV DirectShow Filters 0.21
LAV Splitter
- Improve MPEG-TS program handling in some special circumstances
- Filter out misdetected audio streams (unsupported DTS Express on BluRays)
- Increase the priority of DTS-HD over normal DTS
- Use the official AVI MEDIASUBTYPE instead of a custom one
- Added options to completly disable stream parsing
- Added a new VC-1 parser which will take over when VC-1 timestamp adjustments are turned off
Download: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.21.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.21-x64.zip)
PS: Due to the media subtype change, i recommend unregistering and registering the filter afterwards again.
This is really only a bugfix release, only really "new" feature is the ability to disable stream parsing, and the new VC-1 parser.
Speaking about VC-1, when you turn off the Timestamp Correction option, but keep the Video Stream Parsing option active, the new parser will be used. By use of this parser, you'll get exactly the same output as the MPC-HC Mpeg splitter produces.
Now, don't ask me why playback is still broken with ffdshow. I hope someone else can shed some light on this.
nevcairiel
7th April 2011, 19:55
One thing i just figured out, the registry routines in LAV Splitter don't seem to be able to overwrite the "normal" AVI entry in the registry, so if you unregister it before, you'll have to live with the default AVI Splitter.
Not that AVI is a special format, the default splitter is doing alright, and the MPC-HC internal splitter is fine too .. i'll have to think about a solution for the next version though. =)
Blight
7th April 2011, 20:12
Like i said in my previous post, i can change it so that my source uses the same subtype for AVI that the MS AVI Splitter expects. Personally i don't like that way very much, because it doesn't allow you to easily install two source filters next to each other, but it would "fix" the media type of the Async File Source.
But, then i ask myself, why would anyone want to? The MS AVI Splitter doesn't really have any magnificient features that mine or the MPC-HC AVI Splitter does not have.
I just tested 0.21 and the MS filter now connects, thanks for the fix!
The WMV splitters don't use the File Source (Async), so they don't care.
Is WMV splitting officially recommended now?
nevcairiel
7th April 2011, 20:13
I just tested 0.21 and the MS filter now connects, thanks for the fix!
Well, but LAV Splitter doesn't anymore, right now...... :)
Is WMV splitting officially recommended now?
Not really, just thinking about future headaches. :)
Blight
7th April 2011, 20:33
nevcairiel:
Do you intend (at a future date) to extend the LAVSplitter to live streaming (opening a file from a URL)?
And I believe FFMPEG supports NSV splitting and I don't think there's a DirectShow splitter for this format, is it something you're thinking of?
nevcairiel
7th April 2011, 20:34
Whats a NSV file? Samples? =)
Adding new file formats is usually not that hard, assuming they use "common" video/audio formats.
You can already test it if you just throw the file at it in GraphStudio.
Blight
7th April 2011, 21:01
NSV is NullsoftVideo, it's mainly used for streaming, not really that popular, it's just that it never had a DirectShow splitter available.
There's more info on it here: http://www.scvi.net/
Can't really find a sample file. Only a few torrent files with low seeders.
NanoBot
7th April 2011, 22:17
Hi,
For those who like to experiment with using the splitter for formats for which it isn't registered by default. You can force its use for a file extension with this tweak:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Media Type\Extensions\.xyz]
"Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}"
Post your findings here. Then I can add options to the installer for working formats.
[HKEY_CLASSES_ROOT\Media Type\Extensions\.flac]
"Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}"
works fine. At last I am able to play raw flac files using ffdshow a decoder, since the internal flac splitter of MPC-HC refuses to connect to ffdshow as decoder :thanks:
The only missing thing is that the metadata is either not forwarded to mpc-hc or mpc-hc is not accepting the metadata. Therefore I get the filename of the flac file in the title bar of MPC-HC instead of the title name from the flac tag. Of course I don't know if this is caused by the spliiter or by mpc-hc itself.
nevcairiel
7th April 2011, 22:19
I was meaning to officially support those raw audio files..
jmone
7th April 2011, 22:25
On my Win7 Ultimate 64-Bit box I've had to remove the MS Internal Script Command Renderer Filter (http://msdn.microsoft.com/en-us/library/dd390349(v=vs.85).aspx) as it keeps connecting to the Sub Title Pin with Blu-ray and the playback stalls (yet I don't have this issue with my 32-Bit HTPC). I don't know why lavsplitter is connecting to this filter on this PC & ONLY with BD playback, or what the consequences of removing this filter (I did try lowing it's merit to do not load but it still did).
Filter 'N:\Media4\Video\TORCHWOOD_S1_D1_UK\BDMV\index.bdmv'
CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Host: c:\users\mum and dad\downloads\filters\lavfilters\lavsplitter.ax
Output Pin 'Video'
Connected to pin 'Input' of filter 'J. River Media Proxy Video'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435657-0000-0010-8000-00AA00389B71}, Format type FORMAT_VideoInfo2
Output Pin 'Audio'
Connected to pin 'Input' of filter 'J. River Media Proxy Audio'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {00002001-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Output Pin 'Subtitle'
Connected to pin 'In' of filter 'Internal Script Command Renderer'
Major type MEDIATYPE_Text Sub type TIME_FORMAT_NONE, Format type TIME_FORMAT_NONE
CruNcher
7th April 2011, 22:30
http://www.mediafire.com/download.php?61ynvmy0x47n5b3 <- another Hauppauge sample this should show the out of sync issue better (a delay correction problem ?)
pankov
7th April 2011, 23:20
LAV DirectShow Filters 0.21
LAV Splitter
- Improve MPEG-TS program handling in some special circumstances
- Filter out misdetected audio streams (unsupported DTS Express on BluRays)
- Increase the priority of DTS-HD over normal DTS
- Use the official AVI MEDIASUBTYPE instead of a custom one
- Added options to completly disable stream parsing
- Added a new VC-1 parser which will take over when VC-1 timestamp adjustments are turned off
I've just tested this version and I'm very happy to report that it works with ZoomPlayer.
Thanks, Nev!
and thanks, Blight, for pointing what was problem.
It's pretty late here now so I'll continue my tests tomorrow but I can happily report that .mkv and .ts and .avi files play flawlessly for now.
:thanks:
:)
VipZ
7th April 2011, 23:30
Hi Nev
Here are my current findings and reasons for source choices,
MP4 using LAV, all good here
MKV using MPC, using due to supporting embedded fonts
MPEG TS using LAV, all good here
MPEG PS using MPC, cant seek in any MPEG PS files tested
FLV, using MPC, cant seek in any FLV files tested
OGM, using MPC, cant seek and/or stuttering on most files. OGM is pretty much a dead I guess, but there are many older files using this container
AVI, using LAV, all good here
FLAC,AC3,DTS,OGG using LAV, all good here.
Bluray, tested Zombieland and all good here, can switch video streams perfectly as well via index.bdmv
If you need any samples for problematic formats let me know.
Looking forward to more awesome improvements :)
Snowknight26
7th April 2011, 23:56
H.264 streams in EVOs aren't handled properly if they have pulldown flags. The splitter is showing that the video is 59.94fps. Sample: http://stfcc.org/misc/payback.sample.evo
CruNcher
8th April 2011, 00:05
yep most interesting is the .ts splitter in lav but mpc-hc splitter also makes progress and plays some streams or has some functions that lavf doesn't currently :)
Midzuki
8th April 2011, 02:45
yep most interesting is the .ts splitter in lav but mpc-hc splitter also makes progress and plays some streams or has some functions that lavf doesn't currently :)
Yes, I confirm the filter MpegSplitter.ax from MPC-HC is much better than before :cool: , seeking is easier now :) :) :) , two more revisions and it will become better than the ArcSoft demuxer :D
nevcairiel
8th April 2011, 06:49
MPEG PS using MPC, cant seek in any MPEG PS files tested
..
FLV, using MPC, cant seek in any FLV files tested
..
OGM, using MPC, cant seek and/or stuttering on most files.
Can't seek in MPEG PS at all? I noticed that i cannot seek in some VOB files, but otherwise it seemed ok.
Samples for the above 3 cases would be appreciated.
H.264 streams in EVOs aren't handled properly if they have pulldown flags. The splitter is showing that the video is 59.94fps. Sample: http://stfcc.org/misc/payback.sample.evo
I see it reports it as 60fps, but it still plays fine, so i'm not too worried. ffdshow even plays it as 24p, like its meant to be played. just perfect.
Besides the mis-reported fps, anything else wrong with that file?
nevcairiel
8th April 2011, 14:54
I am happy to report that i fixed the VC-1 problem, in VC-1 Timestamp mode "auto" (indetermined checkbox state) it now plays perfectly with MPC-HC internal, ffdshow (both in wmv9 and avcodec mode), with Cyberlink, ArcSoft, LAV CUVID and WMVideo DMO Decoder. Tested both progressive, and if supported (so not MPC-HC and ffdshow-avcodec), interlaced.
I'm still puzzled by that weird MKV, however.
Sebastiii
8th April 2011, 15:39
Thanks Nevcairiel :)
It's nice :)
Seb.
SamuriHL
8th April 2011, 15:46
Has it been committed to git? I'm not seeing the changes yet.
Sebastiii
8th April 2011, 16:01
Hi SamuriHL :) it seems yes :) just build it :)
nevcairiel
8th April 2011, 16:02
I'm still puzzled by that weird MKV, however.
I figured the problem out. Well, at least i know why it happens. Going to run some additional tests and hope for the best.
Edit:
Commited a fix, which hopefully works and doesn't break anything else.
SamuriHL
8th April 2011, 16:48
Hi SamuriHL :) it seems yes :) just build it :)
Weird. TortoiseGIT was being strange. I got it now. Thanks!
Sebastiii
8th April 2011, 16:59
I figured the problem out. Well, at least i know why it happens. Going to run some additional tests and hope for the best.
Edit:
Commited a fix, which hopefully works and doesn't break anything else.
Great ;) will try @home :).
Mercury_22
8th April 2011, 17:28
I am happy to report that i fixed the VC-1 problem, in VC-1 Timestamp mode "auto" (indetermined checkbox state) it now plays perfectly with MPC-HC internal, ffdshow (both in wmv9 and avcodec mode), with Cyberlink, ArcSoft, LAV CUVID and WMVideo DMO Decoder. Tested both progressive, and if supported (so not MPC-HC and ffdshow-avcodec), interlaced.
I'm still puzzled by that weird MKV, however.
Yes I can confirm this :thanks:
There still is a problem with PGS subtitles : they are displayed after some time = always missing the first 2-3 lines (any type of codec avc, vc-1, mpeg2 & decoder) and for the same files (m2ts or index.bdmv) MPC-HC's internal splitter doesn't have this problem (the missing first lines) it shows all the lines from the beginning
SamuriHL
8th April 2011, 17:37
Yes I can confirm this :thanks:
There still is a problem with PGS subtitles : they are displayed after some time = always missing the first 2-3 lines (any type of codec avc, vc-1, mpeg2 & decoder) and for the same files (m2ts or index.bdmv) MPC-HC's internal splitter doesn't have this problem (the missing first lines) it shows all the lines from the beginning
Yea, I was seeing something like that, as well, but attributed it to my machine just being painfully slow. If you have that issue, as well, then maybe there's something else going on.
Snowknight26
8th April 2011, 17:58
I see it reports it as 60fps, but it still plays fine, so i'm not too worried. ffdshow even plays it as 24p, like its meant to be played. just perfect.
Besides the mis-reported fps, anything else wrong with that file?
Had some issues with MPC-HC's internal decoders and Microsoft's decoder either displaying frames in the wrong order or inserting black frames, but seeing as it also happens with Haali Media Splitter, you're off the hook. :p
Damien147
8th April 2011, 18:02
Hello!
Audio Decoder sounds like chewed videotape:p in the beginning or when seeking with this file and audio goes out of sync.
mediaInfo:
General
Complete name : Conan the Barbarian\Conan the Barbarian.avi
Format : AVI
Format/Info : Audio Video Interleave
File size : 724 MiB
Duration : 2h 10mn
Overall bit rate : 777 Kbps
Video
ID : 0
Format : MPEG-4 Visual
Format profile : Advanced Simple@L5
Format settings, BVOP : 1
Format settings, QPel : No
Format settings, GMC : No warppoints
Format settings, Matrix : Default (H.263)
Muxing mode : Packed bitstream
Codec ID : XVID
Codec ID/Hint : XviD
Duration : 2h 10mn
Bit rate : 640 Kbps
Width : 688 pixels
Height : 320 pixels
Display aspect ratio : 2.2:1
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.121
Stream size : 596 MiB (82%)
Writing library : XviD 1.1.0 (UTC 2005-11-22)
Audio
ID : 1
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 3
Mode : Joint stereo
Mode extension : MS Stereo
Emphasis : 50/15ms
Codec ID : 55
Codec ID/Hint : MP3
Duration : 2h 10mn
Bit rate mode : Constant
Bit rate : 128 Kbps
Channel(s) : 2 channels
Sampling rate : 44.1 KHz
Compression mode : Lossy
Delay relative to video : 26ms
Stream size : 119 MiB (16%)
Alignment : Split accross interleaves
Interleave, duration : 42 ms (1.00 video frame)
Title : Audio Stream
Writing library : LAME3.97
Is it because of Conan the Barbarian?:scared:
:stupid:
edit:Actually audio out of sync with every avi file I tried.
Talking about 0.21 version
Silent Rain
8th April 2011, 19:29
Hi nevcairiel!
When finally LAV Filters replace the internal splitters of MPC-HC???
Your quote: "It is planned for this splitter to eventually replace the internal splitters of MPC-HC".
SamuriHL
8th April 2011, 19:40
It's been discussed very recently (in the last few pages, in fact). MPC-HC may change to facilitate being able to drop any filters you want into a directory within the MPC-HC dir, and then it'll automagically recognize them so that you can use what you want. Those will become the "internal" filters and won't even have to be registered in order to work, meaning it'll still remain quite portable.
Silent Rain
8th April 2011, 19:56
That is, LAV Filters will not be in the future replace the built-in splitters MPC-HC?
SamuriHL
8th April 2011, 20:03
I think you're missing the point. There won't BE any "built-in" splitters in MPC-HC. All the filters will be removed from the executable and moved to a separate folder if the current proposed design changes are implemented. This allows people to use whatever filters they want as "preferred internal". Rather than relying just on what's compiled into the executable. The internal filters page will be redesigned to show the filters that are added to the filters directory. So, in essence, yes, LAV Filters could "replace" the current splitters. It'll give you far more choice.
hoborg
8th April 2011, 20:31
I am happy to report that i fixed the VC-1 problem, in VC-1 Timestamp mode "auto" (indetermined checkbox state) it now plays perfectly with MPC-HC internal, ffdshow (both in wmv9 and avcodec mode), with Cyberlink, ArcSoft, LAV CUVID and WMVideo DMO Decoder. Tested both progressive, and if supported (so not MPC-HC and ffdshow-avcodec), interlaced.
I'm still puzzled by that weird MKV, however.
:thanks:
hoborg
8th April 2011, 20:31
I figured the problem out. Well, at least i know why it happens. Going to run some additional tests and hope for the best.
Edit:
Commited a fix, which hopefully works and doesn't break anything else.
:thanks::thanks:
nevcairiel
8th April 2011, 20:43
Can't seek in MPEG PS at all? I noticed that i cannot seek in some VOB files, but otherwise it seemed ok.
Samples for the above 3 cases would be appreciated.
Hey VipZ, i figured out why you cannot seek, its actually MPC-HCs fault.
Go into Options, Tweaks, and disable "Fast Seek (keyframe)", that allows full seeking again.
I'll look into disabling the key-frame reporting for files where its not supported properly.
MPC-HC should really fallback on normal seeking when the last keyframe syncpoint is too far away.
Edit:
Fixed, only active in MKV and AVI now, these formats i know that it works somewhat ok.
Also fixed the stuttering in the OGM sample. Yay.
I guess that just leaves embedded fonts from your list, eh.
nevcairiel
8th April 2011, 21:25
I guess that just leaves embedded fonts from your list, eh.
nevermind that, next version will support embedded fonts in MKV.
Are embedded fonts used in any other kind of files? If so, anyone has samples?
VipZ
8th April 2011, 21:37
Awesome, thanks Nev :)
nautilus7
8th April 2011, 21:57
Hi, this (http://www.mediafire.com/?nb5vjh2ue207lwd) TrueHD sample plays without sound with the latest version. It's from Dolby Reference Disc. I have a few other files from there that play w/o sound also.
nevcairiel
8th April 2011, 22:06
Hi, this (http://www.mediafire.com/?nb5vjh2ue207lwd) TrueHD sample plays without sound with the latest version. It's from Dolby Reference Disc. I have a few other files from there that play w/o sound also.
Plays just fine for me using LAV Splitter and LAV Audio.
Since this is TrueHD in MPEG-TS, i would like to repeat the fact that TrueHD will NOT play *at all* when using the MPC-HC MPEG Splitter with LAV Audio - and this will not be fixed (well, at least not on my side, maybe some day someone fixes the MPC-HC Splitter)
This is due to the fact that the MPC-HC Splitter really doesn't know about TrueHD, it misdetects it as AC3 and expects the audio decoder to figure out that its TrueHD - and in addition to that, also filter out the AC3 frames from inbetween - this is just total crap.
nautilus7
8th April 2011, 23:19
Yep, that's true. For some reason mpc was using the internal splitter and not LAVSplitter. Sorry for bothering you :)
clsid
8th April 2011, 23:28
I think you're missing the point. There won't BE any "built-in" splitters in MPC-HC. All the filters will be removed from the executable and moved to a separate folder if the current proposed design changes are implemented. This allows people to use whatever filters they want as "preferred internal". Rather than relying just on what's compiled into the executable. The internal filters page will be redesigned to show the filters that are added to the filters directory. So, in essence, yes, LAV Filters could "replace" the current splitters. It'll give you far more choice.It will not be able to use any random filter. It still needs to be programmed to recognize a filter in order to use it properly. At least in case of source filters. The proposed design does allow much more flexibility than the current design and can easily be extended with support for extra filters.
SamuriHL
8th April 2011, 23:34
It will not be able to use any random filter. It still needs to be programmed to recognize a filter in order to use it properly. At least in case of source filters. The proposed design does allow much more flexibility than the current design and can easily be extended with support for extra filters.
This is true, but, by not integrating them with the exe itself, as you said, it should be much simpler to extend MPC-HC to use new filters. Anyone who can program a source filter should be able to extend MPC-HC to look for it and use it. I can't wait. :)
VipZ
8th April 2011, 23:55
Hi Nev
I know EVO is pretty much dead, Using Doom HD-DVD as a test disk, I have been able to get perfect playback with LAV as the splitter, but it will only connect to the MPC DXVA VC1 decoder, if its not too much work, could this be changed so it can also connect to ffdshow and other VC1 decoders.
Below is the MPC connect failure info,
E:\Movies\HD-DVD\FEATURE.EVO::Video
Media Type 0:
--------------------------
Video: WVC1 1920x1080 29.97fps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {D979F77B-DBEA-4BF6-9E6D-1D7E57FBAD53}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 1
cbFormat: 145
VIDEOINFOHEADER:
rcSource: (0,0)-(1920,1080)
rcTarget: (0,0)-(1920,1080)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 333667
VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 1920
dwPictAspectRatioY: 1080
dwControlFlags: 0x00000000
dwReserved2: 0x00000000
BITMAPINFOHEADER:
biSize: 73
biWidth: 1920
biHeight: 1080
biPlanes: 1
biBitCount: 0
biCompression: WVC1
biSizeImage: 0
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0
pbFormat:
0000: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0010: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0020: 00 00 00 00 00 00 00 00 63 17 05 00 00 00 00 00 ........c.......
0030: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0040: 00 00 00 00 00 00 00 00 49 00 00 00 80 07 00 00 ........I...€...
0050: 38 04 00 00 01 00 00 00 57 56 43 31 00 00 00 00 8.......WVC1....
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070:|00 00 01 0f db fe 3b f2 1b ca 3b f8 86 f1 80 c9 ....Ûþ;ò.Ê;ø†ñ€É
0080: 09 a5 b8 d7 07 fc 00 00 01 0e 5a c7 fc ef c8 6c .¥¸×.ü....ZÇüïÈl
0090: 40 @
Media Type 1:
--------------------------
Video: WVC1 1920x1080 29.97fps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {629B40AD-AD74-4EF4-A985-F0C8D92E5ECA}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 1
cbFormat: 145
VIDEOINFOHEADER:
rcSource: (0,0)-(1920,1080)
rcTarget: (0,0)-(1920,1080)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 333667
VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 1920
dwPictAspectRatioY: 1080
dwControlFlags: 0x00000000
dwReserved2: 0x00000000
BITMAPINFOHEADER:
biSize: 73
biWidth: 1920
biHeight: 1080
biPlanes: 1
biBitCount: 0
biCompression: WVC1
biSizeImage: 0
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0
pbFormat:
0000: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0010: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0020: 00 00 00 00 00 00 00 00 63 17 05 00 00 00 00 00 ........c.......
0030: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0040: 00 00 00 00 00 00 00 00 49 00 00 00 80 07 00 00 ........I...€...
0050: 38 04 00 00 01 00 00 00 57 56 43 31 00 00 00 00 8.......WVC1....
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070:|00 00 01 0f db fe 3b f2 1b ca 3b f8 86 f1 80 c9 ....Ûþ;ò.Ê;ø†ñ€É
0080: 09 a5 b8 d7 07 fc 00 00 01 0e 5a c7 fc ef c8 6c .¥¸×.ü....ZÇüïÈl
0090: 40 @
Media Type 2:
--------------------------
Video: WVC1 1920x1080 29.97fps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {31435657-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 1
cbFormat: 145
VIDEOINFOHEADER:
rcSource: (0,0)-(1920,1080)
rcTarget: (0,0)-(1920,1080)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 333667
VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 1920
dwPictAspectRatioY: 1080
dwControlFlags: 0x00000000
dwReserved2: 0x00000000
BITMAPINFOHEADER:
biSize: 73
biWidth: 1920
biHeight: 1080
biPlanes: 1
biBitCount: 0
biCompression: WVC1
biSizeImage: 0
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0
pbFormat:
0000: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0010: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0020: 00 00 00 00 00 00 00 00 63 17 05 00 00 00 00 00 ........c.......
0030: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0040: 00 00 00 00 00 00 00 00 49 00 00 00 80 07 00 00 ........I...€...
0050: 38 04 00 00 01 00 00 00 57 56 43 31 00 00 00 00 8.......WVC1....
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070:|00 00 01 0f db fe 3b f2 1b ca 3b f8 86 f1 80 c9 ....Ûþ;ò.Ê;ø†ñ€É
0080: 09 a5 b8 d7 07 fc 00 00 01 0e 5a c7 fc ef c8 6c .¥¸×.ü....ZÇüïÈl
0090: 40 @
Snowknight26
9th April 2011, 00:28
The first two 'unknown' GUIDs are for Cyberlink and ArcSoft decoders, respectively. The 3rd one is the default WVC1 GUID and should connect to any filter that can handle WVC1. Might also need to define a 4th of {31637677-0000-0010-8000-00AA00389B71}?
ffdshow accepts the connection only if VC-1 is set to libavcodec.
Aleksoid1978
9th April 2011, 00:57
Slow playback(low framerate) with LAVSplitter + MPC Decoder(DXVA) - http://aleksoid.tosei.ru/Test/Sample/sample.split.26.m2ts
Snowknight26
9th April 2011, 01:17
Turn frame time correction on in MPC-HC.
Aleksoid1978
9th April 2011, 01:27
Turn frame time correction on in MPC-HC.
But with internal splitter - play fine. It's don't good - that turn frame time correction on/off for users on different video;
neoufo51
9th April 2011, 04:05
Question: Is LAV Splitter able to work with AVI's on a 64 bit system? For some reason, it only works with anything that is not an AVI. This is in conjunction with LAV Audio decoder and MPC Video Decoder.
Update: I just went to my 32-bit desktop running Win7 and for the hell of it, upgraded from Lav Splitter .20 to .21 and just as I expected, the splitter is NOT working for any AVI file I throw at it. This is again with LAV audio and the MPC Decoder.
nevcairiel
9th April 2011, 07:38
Question: Is LAV Splitter able to work with AVI's on a 64 bit system? For some reason, it only works with anything that is not an AVI. This is in conjunction with LAV Audio decoder and MPC Video Decoder.
Update: I just went to my 32-bit desktop running Win7 and for the hell of it, upgraded from Lav Splitter .20 to .21 and just as I expected, the splitter is NOT working for any AVI file I throw at it. This is again with LAV audio and the MPC Decoder.
Yeah i broke AVIs in .21. Will hopefully be fixed in the next version.
Slow playback(low framerate) with LAVSplitter + MPC Decoder(DXVA) - http://aleksoid.tosei.ru/Test/Sample/sample.split.26.m2ts
The H264 parser i currently use isn't perfect, i need to write a new one. - Heck, i need to write a new parsing infrastructure to handle this.
VipZ
9th April 2011, 08:35
The first two 'unknown' GUIDs are for Cyberlink and ArcSoft decoders, respectively. The 3rd one is the default WVC1 GUID and should connect to any filter that can handle WVC1. Might also need to define a 4th of {31637677-0000-0010-8000-00AA00389B71}?
ffdshow accepts the connection only if VC-1 is set to libavcodec.
Thanks, you right it works now, I had it set to wmv9 :)
Matching_Mole
9th April 2011, 08:39
I thinks it's maybe related more to the fact that in this specific blu-ray the DTS HD is 1.0. No issue with MPC internal splitter but with your splitter, as soon as I change the audio track to the DTS HD 1.0 the video is stopped and no more sound (only with Arcsoft Audio decoder). All back to normal as soon I selected again the regular 2.0 DTS audio Track.
Nevcairiel and Sebastii, have you reproduced the issue with DTS HD mono audio track? I tried from my side the version 0.21 and for me is still present.
nevcairiel
9th April 2011, 08:51
Nevcairiel and Sebastii, have you reproduced the issue with DTS HD mono audio track? I tried from my side the version 0.21 and for me is still present.
It looks like the ArcSoft decoder just does not support Mono tracks properly, yet still accepts the connection to one. Nothing really to be done.
Also, seriously? A mono DTS-HD track? whats the point of that?
Matching_Mole
9th April 2011, 09:48
For some "old" film, editors like criterion or so on (here it is Gaumont in France) choose to not "falsely" extend the original mono track and so it's why you can have this case sometime.
But I'm surprised that Arcsoft decoder do not accept mono track. I mean if I chose MPC internal splitter or Arcsoft Splitter, all works correctly.
Thunderbolt8
9th April 2011, 10:41
It looks like the ArcSoft decoder just does not support Mono tracks properly, yet still accepts the connection to one. Nothing really to be done.
Also, seriously? A mono DTS-HD track? whats the point of that?not sure, but some versions might do, others not. maybe compare 1.1.0.0 to 1.1.0.7 and 1.1.0.8
CruNcher
9th April 2011, 12:53
Yeah i broke AVIs in .21. Will hopefully be fixed in the next version.
The H264 parser i currently use isn't perfect, i need to write a new one. - Heck, i need to write a new parsing infrastructure to handle this.
Yep happens only it seems with ffdshow DXVA and MPC-HC DXVA though imho i would be more worried about the satellite recorded problematic streams then such speced stuff that fails only with a handfull decoders ;)
nevcairiel
9th April 2011, 13:20
Yep happens only it seems with ffdshow DXVA and MPC-HC DXVA though imho i would be more worried about the satellite recorded problematic streams then such speced stuff that fails only with a handfull decoders ;)
Good that i'm not you then!
i care about perfect bluray playback, dvb recordings are most of the time just very non-standard files, because the recording apps are just crap.
clsid
9th April 2011, 16:16
Unregistering the splitter (v0.21) does not restore the original mediatype values for AVI.
clsid
9th April 2011, 17:34
Here is an installer for LAV Filters v0.21:
Download (http://www.mediafire.com/file/3lsv94ome2pvov6/LAVFilters_021.exe)
It contains both the x86 and x64 build.
It allows selection of the formats that must be handled by the splitter.
It has options for a few additional formats compared to manual registration. For example: RMVB, RM, FLAC, AAC, AMR, MPC, WV, TTA.
It detects if the required runtimes are installed and directs to the MS site to download them.
SamuriHL
9th April 2011, 17:49
Can we get the script used to build that added to the source repository? Cause that'd be extremely useful. Thanks, clsid!
Kaotech
9th April 2011, 18:23
http://i52.tinypic.com/11twi0n.png
With VC-1 HDDVD, the video isn't smooth, on the screen you can see the red line isn't flat. The video cut like my processeur was full.
VipZ
9th April 2011, 19:02
http://i52.tinypic.com/11twi0n.png
With VC-1 HDDVD, the video isn't smooth, on the screen you can see the red line isn't flat. The video cut like my processeur was full.
I get similar issue, I was able to get the DOOM HD-DVD working but others don't seem to play ball, source is showing as 29.97hz when the stream is actually 23.976, maybe this is the reason for this issue. FTC on or off makes no difference here. I have pretty much given up on EVO, its never been a happy format outside commercial players or remuxing to m2ts or something.
EDIT: Even Doom isn't correct, occasionally it locks onto 23.976 and then is correct for a short while, and then breaks again.
nevcairiel
9th April 2011, 19:58
Here is an installer for LAV Filters v0.21:
Download (http://www.mediafire.com/file/3lsv94ome2pvov6/LAVFilters_021.exe)
It contains both the x86 and x64 build.
It allows selection of the formats that must be handled by the splitter.
It has options for a few additional formats compared to manual registration. For example: RMVB, RM, FLAC, AAC, AMR, MPC, WV, TTA.
It detects if the required runtimes are installed and directs to the MS site to download them.
Nice job, looks good.
Only thing, i wouldn't really activate RealMedia by default, its barely tested (in fact i know it doesn't work very well).
Oh, and why is MPEG-PS off? :)
How do you stop the filter from registering for that format? Delete the key afterwards again?
Is that an InnoSetup?
If you don't object, i would like to offer it officially for one of the next versions, and add the script to the source repository.
PS:
I'll fix the AVI thing properly soon.
mindbomb
9th April 2011, 20:36
Nevcairiel and Sebastii, have you reproduced the issue with DTS HD mono audio track? I tried from my side the version 0.21 and for me is still present.
If you can, replace your dtsdecoderdll.dll with the dtsdecoderdll.dll from TotalMedia Theatre 5.0.1.87.
Oh, and why is MPEG-PS off? :)
How do you stop the filter from registering for that format? Delete the key afterwards again?
How do I add/remove this keys manually? I would like to add WMV.
nevcairiel
9th April 2011, 21:07
I will probably make a installer next week, or maybe tomorrow if I have some time. That will be able to configure which formats the splitter handles.
For those who like to experiment with using the splitter for formats for which it isn't registered by default. You can force its use for a file extension with this tweak:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Media Type\Extensions\.xyz]
"Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}"
Post your findings here. Then I can add options to the installer for working formats.
Let me know how well it works with wmv.
VipZ
9th April 2011, 21:32
Let me know how well it works with wmv.
Tested for you, WMV and ASF seems to work fine, with the exception of not working with AR flag's.
On another note, with OGM the seek issue is fine now, but with LAV Splitter and ffdshow for decoding xvid/divx it plays at around 16fps and not 25fps, other decoders seem fine, so not sure if this is a LAV bug or a ffdshow bug.
EDIT, latest build has no OGM issues anymore :)
MPEG-PS works very well now for me with the exception of EVO with VC1, hopefully the work you have done on VC1 will help that, does anyone have a current build available for me to test :)
Sebastiii
9th April 2011, 21:53
Let me know how well it works with wmv.
WMV HD works fine, to get HD Audio, it was needed to check enable Jitter in FFDShow Audio, and now no need :)
Thanks.
Mercury_22
9th April 2011, 21:57
Tested for you, WMV and ASF seems to work fine, with the exception of not working with AR flag's.
On another note, with OGM the seek issue is fine now, but with LAV Splitter and ffdshow for decoding xvid/divx it plays at around 16fps and not 25fps, other decoders seem fine, so not sure if this is a LAV bug or a ffdshow bug.
MPEG-PS works very well now for me with the exception of EVO with VC1, hopefully the work you have done on VC1 will help that, does anyone have a current build available for me to test :)
Nevcairiel-LAVFSplitter-d28a407 (http://www.multiupload.com/8HGPKI0R7P)
Also my suggestions
1 change your LAV VC-1 settings to auto (what decoder are you using ?)
2 Reset MPC-HC's settings
3 Reset you Video drivers then if you have ATI, disable all settings in Video section except "Use automatic deinterlacing" & "Pulldown detection"
Plutotype
9th April 2011, 22:11
If you can, replace your dtsdecoderdll.dll with the dtsdecoderdll.dll from TotalMedia Theatre 5.0.1.87.
Unfortunately ArcSoft Audio Decoder HD (TMT5) downsamples HD audio to 48/16..or em I wrong?
nevcairiel
9th April 2011, 22:16
On another note, with OGM the seek issue is fine now, but with LAV Splitter and ffdshow for decoding xvid/divx it plays at around 16fps and not 25fps, other decoders seem fine, so not sure if this is a LAV bug or a ffdshow bug.
"Now" meaning what, exactly?
Using some custom build, or official 0.21?
I recently fixed a problem that caused exactly this, hoping that i didnt break something else in the process.
VipZ
9th April 2011, 22:33
Nevcairiel-LAVFSplitter-d28a407 (http://www.multiupload.com/8HGPKI0R7P)
Also my suggestions
1 change your LAV VC-1 settings to auto (what decoder are you using ?)
2 Reset MPC-HC's settings
3 Reset you Video drivers then if you have ATI, disable all settings in Video section except "Use automatic deinterlacing" & "Pulldown detection"
Thanks for that build :)
OGM is now working fine with ffshow in this build, no more issues that I see
WMV still has AR flag issue.
EVO, The updated build does show a difference now under ffdshow (libav), the video no longer stutters, simply plays too fast and out of sync. MPC DXVA remains the same, synced but stutters, no other filters connect to this, I don't test with PowerDVD/TMT, I try keep away from commercial decoders. I always disable the ATI options already and MPC-HC's settings have been reset. LAV VC1 set to Auto, others also don't improve the results. If this file is remuxed to a m2ts it plays perfectly, if there is any way to force decoding to 23.976 I think it would play fine.
Here is a screenshot showing the change from stuttering to smooth at around half way, this is total random and not position specific. http://i53.tinypic.com/2ares0.jpg
Mercury_22
9th April 2011, 22:44
Thanks for that build :)
OGM is now working fine with ffshow in this build, no more issues that I see
WMV still has AR flag issue.
EVO, The updated build does show a difference now under ffdshow (libav), the video no longer stutters, simply plays too fast and out of sync. MPC DXVA remains the same, synced but stutters, no other filters connect to this, I don't test with PowerDVD/TMT, I try keep away from commercial decoders. I always disable the ATI options already and MPC-HC's settings have been reset. LAV VC1 set to Auto, others also don't improve the results. If this file is remuxed to a m2ts it plays perfectly, if there is any way to force decoding to 23.976 I think it would play fine.
Here is a screenshot showing the change from stuttering to smooth at around half way, this is total random and not position specific. http://i53.tinypic.com/2ares0.jpg
Try "Enable Frame Time Correction" and Nevcairiel-LAVFSplitter-0.21-16-ga7a4a71 (http://www.multiupload.com/QFDVADH540)
VipZ
9th April 2011, 22:49
Try "Enable Frame Time Correction" and Nevcairiel-LAVFSplitter-0.21-16-ga7a4a71 (http://www.multiupload.com/QFDVADH540)
FTC and that build makes no difference over the one you posted earlier, could you recommend a commercial decoder for me to test and see if this is any different.
Mercury_22
9th April 2011, 22:58
FTC and that build makes no difference over the one you posted earlier, could you recommend a commercial decoder for me to test and see if this is any different.
Before go there try WMVideo Decoder DMO with FTC ON then try Nero or Arcsoft
VipZ
9th April 2011, 23:02
Before go there try WMVideo Decoder DMO with FTC ON then try Nero or Arcsoft
WMVideo Decoder DMO doesn't connect on EVO's, I will try test Arcsoft.
nevcairiel
9th April 2011, 23:08
Do you have some VC1 in EVO sample somewhere?
VipZ
9th April 2011, 23:33
Do you have some VC1 in EVO sample somewhere?
Here you go, http://www.mediafire.com/?pwb6cb01dk41661
I didn't choose Doom as that worked sometimes and sometimes not, Dukes of Hazard always seems to have the issue. I hope the way I split it is ok, comes up same as full EVO.
jmone
10th April 2011, 00:24
How did you split the EVO (I've got a good VC-1 Interlaced disc - Eagles)
VipZ
10th April 2011, 00:50
How did you split the EVO (I've got a good VC-1 Interlaced disc - Eagles)
I just downloaded the file splitter from here, http://www.filesplitter.org/ and set to split the EVO at every 150mb and choose one of the split files for the sample. The sample gets minor corruption at the start, but mediainfo still reports the stream correctly and the sample has same characteristics as the original.
I think its one issue that's occurs on all EVO's if a solution is found to one, it should hopefully apply to all.
mindbomb
10th April 2011, 00:51
Unfortunately ArcSoft Audio Decoder HD (TMT5) downsamples HD audio to 48/16..or em I wrong?
just replace that one dll, not the whole thing.
nevcairiel
10th April 2011, 01:32
It looks like ffmpeg just isn't too happy about EVO files in general. Remuxing the file with ffmpeg causes the file to show the same symptoms of choppyness, and all EVO files i saw are misdetected with a wrong frame rate (which probably causes the problems in the first place). Sadly there is no easy way to fix these terribly broken timestamps and maintain A/V sync.
Considering that HDDVD is dead, and EVO isnt really used anywhere else, i also have no real hope for improvements on ffmpegs side.
jmone
10th April 2011, 03:39
A EVO VC-1 Interlaced Sample - http://www.mediafire.com/?d4h51794if31aba
Aleksoid1978
10th April 2011, 04:28
Bug .ts + MPEG2 - http://aleksoid.tosei.ru/Test/Sample/Hilary.0000.ts
Dogway
10th April 2011, 05:30
Any idea on why LAV doesnt split this video? Does it have to do on MPC configuration?
I show my setup, I tried to include MPC filter because when a codec didnt find its decoder in external filters, filters were disappearing
I also have a DivX recording which didn't work.
lav 0.20 and just tested 0.21. Graphstudio splits them tho.
nevcairiel
10th April 2011, 08:06
Any idea on why LAV doesnt split this video?
The file opens just fine for me, must be something in your configuration.
Bug .ts + MPEG2 - http://aleksoid.tosei.ru/Test/Sample/Hilary.0000.ts
Fixed
Dogway
10th April 2011, 08:13
I removed the last ffdshow audio, and ac3filter, and worked. All of them are set as prefered. Now Im disabling overlapping decodings.
edit:even with no filter chain LAV doesn't work. I'm trying now with the executable of 0.21 this time, but that doesn't quit something is very unstable, MPC or lavf. It would be good to know how to track down these things in the registry or wherever. MKV always works none the less.
edit2: Now it works, MPC's ini file gets screwed easily :/
Underground78
10th April 2011, 08:37
Hi,
I have some troubles getting embedded subtitles working with LAVSplitter + MPC-HC rev 3019. I tried to add "DirectVobSub" filter to the preferred filters list but MPC-HC started crashing when loading a file (mkv or ts) with embedded subtitles ... I though it was a renderer problem so I tried madVR but it did not help.
Any thoughs ?
Underground78
nevcairiel
10th April 2011, 08:42
For embedded subs with either EVR CP or madVR you should not need DirectVobSub, instead you should just enable the internal subtitle renderer.
Open a file and check in the context menu under Subtitles if Enabled is check. Also, in the Options, Subtitles -> Misc check that "Do not load embedded subtitles" is turned off.
VipZ
10th April 2011, 08:44
It looks like ffmpeg just isn't too happy about EVO files in general. Remuxing the file with ffmpeg causes the file to show the same symptoms of choppyness, and all EVO files i saw are misdetected with a wrong frame rate (which probably causes the problems in the first place). Sadly there is no easy way to fix these terribly broken timestamps and maintain A/V sync.
Considering that HDDVD is dead, and EVO isnt really used anywhere else, i also have no real hope for improvements on ffmpegs side.
Thanks nev to looking into this dead/broken format :)
I thought this may be case with EVO being just plain broken, I have also given up trying to get it working (Replaced most of my HD-DVD's now anyway ). I guess there is no easy way to try to just force 23.976 fps on EVO files and hope for the best?
nevcairiel
10th April 2011, 08:45
I guess there is no easy way to try to just force 23.976 fps on EVO files and hope for the best?
I tried that, that utterly breaks A/V sync.
PS:
Anyone running custom builds, if you can, please try the latest revision on whatever MPEG-TS you have, and see if it didn't break any files. Sometimes those TS files are just crazy..
VipZ
10th April 2011, 09:13
I tried that, that utterly breaks A/V sync.
PS:
Anyone running custom builds, if you can, please try the latest revision on whatever MPEG-TS you have, and see if it didn't break any files. Sometimes those TS files are just crazy..
Ok, thanks.
I don't have the latest build, if someone could upload it, I can test it against my MPEG-TS collection :)
On this one, 0.21-16-ga7a4a71 I am getting few crashes on seeks for TS and PS and 1 or 2 crash on start's.
Underground78
10th April 2011, 09:45
For embedded subs with either EVR CP or madVR you should not need DirectVobSub, instead you should just enable the internal subtitle renderer.
Open a file and check in the context menu under Subtitles if Enabled is check. Also, in the Options, Subtitles -> Misc check that "Do not load embedded subtitles" is turned off.
Thanks for your answer !
The "Subtitles" menu is grayed out : http://i.imgur.com/MaqHw.png (http://imgur.com/MaqHw.png) ...
I don't understand why, I've checked the options and I see nothing wrong. :confused: I am still using XP, can it be related to that ?
Also what should I do if I don't use MadVR so that DVXA decoding works ? I guess I should add DirectVobSub to the list in this case ?
Mercury_22
10th April 2011, 09:55
Ok, thanks.
I don't have the latest build, if someone could upload it, I can test it against my MPEG-TS collection :)
On this one, 0.21-16-ga7a4a71 I am getting few crashes on seeks for TS and PS and 1 or 2 crash on start's.
Nevcairiel-LAVFSplitter-0.21-20-g25cf6e0 (http://www.multiupload.com/4YXAGI9BRG)
@Nev So far just some files with 0.000 Frame rate but playing ok (with MPC-HC's internal are showing 50 they are 25i mpeg2 or avc) but I didn't test them before so I can't say that this is caused by your latest changes
Dogway
10th April 2011, 10:36
@nevcairiel: I think now everything works nice. At least better than before. Still Im unsure if LAV Splitter supports ASP, I tried with two clips, one divx3+mp3, another one divx5+adpcm. Im also testing LAVCUVID and it doesn't work with them, everything is fine when talking about h.264.
divx5+adpcm 2Mb:
http://www.mediafire.com/?7owp6mc7az6cix7
edit: 0.21 didn't split them, reverted back to 0.20. Yet LAVCUVID still doesn't decode them, I will post this in its proper thread. edit2: this is why (http://forum.doom9.org/showpost.php?p=1488446&postcount=104)
VipZ
10th April 2011, 10:38
Nevcairiel-LAVFSplitter-0.21-20-g25cf6e0 (http://www.multiupload.com/4YXAGI9BRG)
@Nev So far just some files with 0.000 Frame rate but playing ok (with MPC-HC's internal are showing 50 they are 25i mpeg2 or avc) but I didn't test them before so I can't say that this is caused by your latest changes
Thanks for that build, all the previous broken PS/TS are now working fine.
Only 2 minor issues I find remain,
OGM, from 1st frame to 1st key frame is corrupted.
WMV, AR flags not honored.
Thanks nev for the awesome progress this weekend, from using for a handfull of files, to all :)
Kaotech
10th April 2011, 10:50
I've a another problem with official 0.21 build, i don't know why, but again my bluray stop to play when I change audio. :confused:
It's very strange nobody have the same problem.
VipZ Your evo file are playing with the good framerate now ?
Underground78
10th April 2011, 10:53
I've a another problem with official 0.21 build, i don't know why, but again my bluray stop to play when I change audio. :confused:
It's very strange nobody have the same problem.
I have the same problem with a TS file and a MKV file but not every times. I am still not sure to clearly understand when it works and when it doesn't.
nevcairiel
10th April 2011, 10:57
WMV, AR flags not honored.
Do you have a sample for that?
I think i know whats going on, but i haven't found a file that shows it. I barely have any WMVs to begin with. :(
VipZ
10th April 2011, 11:08
I've a another problem with official 0.21 build, i don't know why, but again my bluray stop to play when I change audio. :confused:
It's very strange nobody have the same problem.
VipZ Your evo file are playing with the good framerate now ?
Nope, it was hoping nev could help with EVO's but I had already abandoned hope for EVO's, I will maybe occasionally try when new builds come out, but otherwise will just try forgot this format ever existed.
Do you have a sample for that?
I think i know whats going on, but i haven't found a file that shows it. I barely have any WMVs to begin with. :(
I will see if I can get a sample for you.
nevcairiel
10th April 2011, 12:53
I will see if I can get a sample for you.
Tested with the sample, and it doesn't seem like its properly detecting the AR at all, doesn't look like i can fix that right now.
Would have to dig into avformat itself if its detecting the AR at all, or just forgetting to tell anyone.
CruNcher
10th April 2011, 13:15
Disable Video Stream Parsing fixes the sync issues for the Hauppauge .ts Streams :)
damnit now it gets unsyc for Mpeg-2 streams (delay correction is not setting in) using Mainconcepts Decoder with that setting i guess i have to reconfigure it :(
yep reenabling Video Stream Parsing and it works again on the Mpeg-2 ts and fails on the H.264 ts :(
The delay correction is to long for the H.264 Hauppauge ts thats why it gets unsync with Video Stream Parsing disabled it isnt as long and stays sync sample_HD.ts :)
nevcairiel
10th April 2011, 13:27
If your first set of streams was H264, then the next version wont use the parser anymore anyway.
sneaker_ger
10th April 2011, 13:38
Thanks for your answer !
The "Subtitles" menu is grayed out : http://i.imgur.com/MaqHw.png (http://imgur.com/MaqHw.png) ...
I don't understand why, I've checked the options and I see nothing wrong. :confused: I am still using XP, can it be related to that ?
Also what should I do if I don't use MadVR so that DVXA decoding works ? I guess I should add DirectVobSub to the list in this case ?
You cannot (currently) use DXVA and DirectVobSub at the same time. Make sure you have respected the following options:
1.) In MPC-HC's options under "Playback", activate "Auto-load subtitles"
2.) in MPC-HC's options under "Output", you use a renderer with two asterisks behind the name (" ** "). On Windows XP that's "VMR-9 (renderless)" if you want to use DXVA
pankov
10th April 2011, 13:47
I've just tested a bunch of .ts files and I'm pretty pleased with the results.
Only this one
http://www.mediafire.com/?em2ouktaqfvd36f
crashes the player (ZoomPlayer) after showing the first few frames.
If I select "No subtitles" in LAV Splitter's options everything works fine.
So I guess it could be that it's DirectVobSub's fault after all but I thought it's better report it in case you can do something about it.
nevcairiel
10th April 2011, 13:49
I've just tested a bunch of .ts files and I'm pretty pleased with the results.
Only this one
http://www.mediafire.com/?em2ouktaqfvd36f
crashes the player (ZoomPlayer) after showing the first few frames.
If I select "No subtitles" in LAV Splitter's options everything works fine.
So I guess it could be that it's DirectVobSub's fault after all but I thought it's better report it in case you can do something about it.
Interesting, the second BBC-HD subtitle crash. Maybe i should figure out why its crashing in VSFilter.
Edit: Actually, at least when using the MPC-HC internal renderer, this one doesn't crash.
CruNcher
10th April 2011, 13:58
all the other H.264 streams seem to stay sync so if the fix is just to disable Video Stream Parsing for H.264 ts bitstreams (in this decoder configuration) and enable it for Mpeg-2 Bitstreams (for the other Mainconcept) it could be a way of managing it but i wait for your next version to see if its a better way for more Decoder especialy as this way here brakes LAV CUVID Mpeg-2 Decoder it freezes with Video Stream Parsing off on that Mpeg-2 sample. Now i will test first how many H264 .ts streams are affected by Disabling the Video Stream Parsing :)
Nice the Hilary Stream Plays now with the new build im using the one from Mercury http://www.multiupload.com/4YXAGI9BRG, no stream switching yet but at least it plays, seeking though still seems to fail also :)
hehe i cant wait for the ultimate showdown between MPC-HC TS Splitter and LAV Splitter, Haalis Splitter seems already far behind with all its crashes and PAT problems :D
Blight
10th April 2011, 14:09
clsid, nevcairiel:
Even with v0.21, the sub-type is changed for formats other than AVI, for example "VOB" files (MPEG2-PS).
Is it possible to disable this behavior in the new installer by created clsid?
And while we're discussing the installer, can you set a command line to disable some or all format registration, so that no sub-type is changed by the installer when doing a unattended (silent) installs?
CruNcher
10th April 2011, 14:34
Nev i see you got V0lts Canal HD sample working though it crashes Cyberlinks Decoder now :( works fine with LAV CUVID obviously
http://img835.imageshack.us/img835/295/cyberlinkcrash.png
guess we need to see if that still happens with the new H.264 parser in LAV Splitter 0.22
Underground78
10th April 2011, 14:51
In MPC-HC's options under "Playback", activate "Auto-load subtitles"
Damn it, I just forgot to switch "Auto-load subtitles" on ... :o Thanks a lot !
I still have some problems with a mkv file, if I try to change the audio track, the audio stops playing : sample.mkv (http://www.mediafire.com/?fub83pmbmckm146) ...
PS : Are TS files with more than one program currently supported ?
CruNcher
10th April 2011, 14:56
Obviously turning of Video Stream Parsing just to fix some streams sync issues is no good solution as other streams can stay completely black and additionally others go unsync shifting problems around is not a good idea :(
Even if so far i found only 1 Stream that goes entirely black and 1 Stream that goes out of sync
Oh some .m2ts streams also fall back to Arcsoft Demux or MPC-HC splitter and can't be parsed with that LAV Splitter build @ all anymore it seems most common criteria seems that they have a dts-hd ma stream and that sound doesn't play with Lav Audio decoder @ all on the other 2 parser.
Here is a sample of such a .m2ts that falls back the chain http://www.mediafire.com/download.php?89mi598a8y73jba (though that's much better then how some Video Decoder try to forcefully playback streams they can't ;) )
nevcairiel
10th April 2011, 15:18
Are TS files with more than one program currently supported ?
You should be able to play them, with the limitation that you'll only ever see the first program it finds.
Underground78
10th April 2011, 15:34
You should be able to play them, with the limitation that you'll only ever see the first program it finds.
With this sample (http://www.mediafire.com/?39r98s8aofe33sc), it only shows the first image so I guess there is something wrong.
Also with this other sample (http://www.mediafire.com/?z0fcr5k3023r31v), the playback is quite jerky when using the VMR-9 renderer. I am not sure it is related to LAV Splitter though.
CruNcher
10th April 2011, 15:40
@Underground78 try this build after 0.21 it should fix the freeze issue http://www.multiupload.com/4YXAGI9BRG oh indeed that sample still freezes also with the new build, the other shows no issues here on vmr9 windowed nor renderless nor lav cuvid nor cyberlink nor ffdshow audio nor lav audio nor any combination ;)
Underground78
10th April 2011, 15:45
@Underground78 try this build after 0.21 it should fix the freeze issue http://www.multiupload.com/4YXAGI9BRG oh indeed that sample still freezes
It fixes this : Also with this other sample, the playback is quite jerky when using the VMR-9 renderer. I am not sure it is related to LAV Splitter though.
Thanks ! :)
CruNcher
10th April 2011, 16:03
Instant Stream switching like with the Hilary sample works fine with Cyberlinks Demuxer
http://img291.imageshack.us/img291/1038/cyberlinkdemuxmultiplex.png
MPC-HC splitter in comparison with the hilary sample also fails on this one (Video Freeze audio Plays) :(
VLC fails also here with it defaults only mplayer (smplayer gui) does the stream switching as instant as cyberlink on Windows though smplayer gui wont jump to the correct audio stream you need to select that manualy :P
Sebastiii
10th April 2011, 16:11
Originally Posted by Aleksoid1978 View Post
Bug .ts + MPEG2 - http://aleksoid.tosei.ru/Test/Sample/Hilary.0000.ts
Fixed
It start to play, but i can't seek it, timer stop. :(
clsid
10th April 2011, 16:14
@nevcairiel
Perhaps you can make the format registration conditional?
For example, read values from HKLM\Software\LAV\Splitter
If value for a format is 1, registered format. If 0, don't register (and cleanup previous registration).
If value does not exist, use internal default, namely register stable formats. That way the reg key is not needed for manual registration.
I will send script after I have cleaned it up a bit.
nevcairiel
10th April 2011, 16:58
Instant Stream switching like with the Hilary sample works fine with Cyberlinks Demuxer
Stream switching is "by design" not instant. I could just make it instant, but that had some drawbacks.
What i do is let the player actually choose a new audio decoder. For example the MPC-HC splitter doesnt do that, it just hopes that the previous decoder can handle the stream that you are now sending to it.
To choose a new decoder, you need to stop the graph, and reconnect the audio decoder. Now if your audio decoder is crap or just not designed for dynamic reconnection, it could just as well break in the process.
The commercial decoders, and splitters, are only designed to work in one fixed environment, where one decoder is used for all formats, so they don't generally have to handle this.
Comparisons to commercial splitters that are designed to work with exactly one audio decoder and one video decoder and one renderer in one player are really pointless.
Ger
10th April 2011, 17:26
The progress is amazing these days. :)
Been running some tests on my DVB samples with the last version uploaded by Mercury_22 (so up to and including this commit (http://git.1f0.de/gitweb?p=lavfsplitter.git;a=commit;h=25cf6e0bf7b4b67a0377e185b31c54cc4000b3cb)), since you asked for regression testing for that one.
No regressions found, but as others have reported, seeking breaks playback with that Hilary ATSC sample. Plays fine (with the HD program selected by default) if starting from position 0 and being allowed to just play out without seeking.
I can also confirm that the crash on seek with ffdshow's libmpeg2 is fixed (http://git.1f0.de/gitweb?p=lavfsplitter.git;a=commit;h=b374847613a8a4eb1e7ddc77ac4aeb9d2824828f) (tested with the old "Henry IV" sample I also uploaded around v0.3). :thanks:
The other issue I have with that "Henry IV" sample (http://www.multiupload.com/VXB2W7GPSL) still remains. When ffdshow is used as the video decoder (libmpeg2 or libavcodec doesn't matter) enabling one of the DVB subtitles stops playback when the subtitles are about to be shown. I went back through previous LAV Splitter versions, and it was broken in v0.6 (working in v0.5). No such issue with the MPC-HC decoder. MPC-HC subtitle renderer used in both cases.
I also did some recordings from around 20 different H.264 HD channels the other night. Most of these were fine, but 3-4 of these channels are problematic with LAV Splitter (black screen or frozen picture and no audio - I guess similar behavior to Underground78's multiplex.ts).
I'm uploading the problem samples recorded from these channels with DVBViewer (3 HD samples) (http://www.multiupload.com/QM1SWU7Y68) (Adjust PMT/PAT option checked - I think this cleans it up and removes all other empty programs from the original transponder/mux), and also with Enigma2 (3 HD from the same channels as above + 1 manually split/cut SD) (http://www.multiupload.com/5S1T78EYDX) which seemingly leaves the PMT/PAT with empty remains from the other channels in the original mux, as seen in Cyberlink Demuxer 2.0. The results are the same though, so how they are recorded seems to matter less than which channel it was recorded from. I'm still including both types just in case. I tested old versions, but they never worked properly, so no regression. Plays fine in DVBViewer, TSPlayer, Enigma2, VLC. MPC-HC splitter is partially OK, but the duration is broken for some of the samples, and may need a seek to start. Duration is OK with LAV Splitter though.
nevcairiel
10th April 2011, 17:39
The other issue I have with that "Henry IV" sample (http://www.multiupload.com/VXB2W7GPSL) still remains. When ffdshow is used as the video decoder (libmpeg2 or libavcodec doesn't matter) enabling one of the DVB subtitles stops playback when the subtitles are about to be shown. I went back through previous LAV Splitter versions, and it was broken in v0.6 (working in v0.5). No such issue with the MPC-HC decoder. MPC-HC subtitle renderer used in both cases.
Just to be clear, you have the subs selected from the start, but then it freezes when it wants to show them? Now thats weird.
Also, i don't see that here.
Using LAV Splitter, LAV Audio, ffdshow in libmpeg2, MPC-HC sub renderer, EVR-CP (and madVR tested as well). Selected english audio track, and bulgarian sub track. Subs show just fine.
nevcairiel
10th April 2011, 17:42
Perhaps you can make the format registration conditional?
For example, read values from HKLM\Software\LAV\Splitter
If value for a format is 1, registered format. If 0, don't register (and cleanup previous registration).
If value does not exist, use internal default, namely register stable formats. That way the reg key is not needed for manual registration.
I'll think about that tomorrow some, i'm sure i can come up with some reasonable solution.
Ger
10th April 2011, 18:06
Just to be clear, you have the subs selected from the start, but then it freezes when it wants to show them? Now thats weird.
Also, i don't see that here.
Using LAV Splitter, LAV Audio, ffdshow in libmpeg2, MPC-HC sub renderer, EVR-CP (and madVR tested as well). Selected english audio track, and bulgarian sub track. Subs show just fine.
I retested now, and it doesn't happen if I add "bul" to the list of wanted subtitle languages. I don't speak Bulgarian, so this is only for testing purposes. It only happens if I enable Bulgarian manually from the filters/splitter menu. But once manually enabled the issue remains even after restarting playback (but not rebuilding the graph which disables the subtitles again when "bul" is not in the list).
madVR and EVR-CP behaves the same. Issue is not present at all with MPC-HC MPEG-2 decoder or with LAV Splitter 0.5 and older.
PS. I normally use "nor,swe,dan,eng" for both audio and subs. Otherwise same settings as you, and yes it plays fine until the subs are about to be shown (so when enabled when no talking is going on for a while it plays longer).
CruNcher
10th April 2011, 18:17
Stream switching is "by design" not instant. I could just make it instant, but that had some drawbacks.
What i do is let the player actually choose a new audio decoder. For example the MPC-HC splitter doesnt do that, it just hopes that the previous decoder can handle the stream that you are now sending to it.
To choose a new decoder, you need to stop the graph, and reconnect the audio decoder. Now if your audio decoder is crap or just not designed for dynamic reconnection, it could just as well break in the process.
The commercial decoders, and splitters, are only designed to work in one fixed environment, where one decoder is used for all formats, so they don't generally have to handle this.
Comparisons to commercial splitters that are designed to work with exactly one audio decoder and one video decoder and one renderer in one player are really pointless.
I fully agree interoperability should be the major goal and what you see above their is Cyberlink Demuxer->Lav audio decoder-> Elecard/Mainconcept Mpeg-2 Decoder->VMR9 Renderless (DXVA) doing instant switiching without any issues.
And it is instant i click on the different channel and it immediately switches its not like with MPC-HC Splitter where you have to wait till the next GOP starts before it switches, Cyberlinks/Arcsofts Demuxer work different.
nevcairiel
10th April 2011, 18:24
It only happens if I enable Bulgarian manually from the filters/splitter menu. But once manually enabled the issue remains even after restarting playback (but not rebuilding the graph which disables the subtitles again when "bul" is not in the list).
Interesting, i can reproduce it now, and i think i know why. The internal sub renderer has a Pass-Through filter for subtitles, so when it renders them, it still sends them out to any other filter willing to listen.
Now, when you start playback with no subs detected, the subtitle pin is still connected on a very neutral pin type - one that ffdshow understands - so the internal sub renderer connects, and the pass-through filter connects to ffdshow.
Now you switch to a DVB Subtitle. The internal renderer is all happy and starts rendering. The Pass-Through filter sends it merely off to ffdshow as well. But ffdshow is all confused, because it doesn't understand DVB Subs ... and then all breaks.
I will think about a way to solve this problem, maybe i should completly disconnect subtitles - not sure if that really works properly however. :(
In any case, it only happens if you want to activate a dvb subtitle after-the-fact, with a properly choosen language list, hopefully that shouldn't block your daily viewing pleasures. ;)
pankov
10th April 2011, 18:30
Nev,
where can one find a full list of supported 3-letter language codes?
is it ISO 639-2?
http://en.wikipedia.org/wiki/List_of_ISO_639-2_codes
nevcairiel
10th April 2011, 18:34
http://git.1f0.de/gitweb?p=lavfsplitter.git;a=blob;f=common/DSUtilLite/locale.cpp
I don't claim its complete, i stole it from MPC-HC
And yes, its supposed to be ISO 639-2
Ger
10th April 2011, 18:52
In any case, it only happens if you want to activate a dvb subtitle after-the-fact, with a properly choosen language list, hopefully that shouldn't block your daily viewing pleasures. ;)
Nah, no worries on that front. ;)
It doesn't really affect me anyway, for several reasons. DVB-subs are common with H.264 channels here, but MPEG-2 with DVB-subs is not used in this region (old STB compatibility reasons - they only understand TeleText subs), but apparently is in eastern Europe. I also have several STB/hardware/software options available for viewing stuff.
I'm just generally interested in getting your filters as bug free and flexible as possible. So I'm randomly testing/reporting as much as I can think of, even stuff I wouldn't normally use.
nevcairiel
10th April 2011, 18:56
I'm just generally interested in getting your filters as bug free and flexible as possible. So I'm randomly testing/reporting as much as I can think of, even stuff I wouldn't normally use.
Thanks!
I just fixed another bug with mpeg-ts programs that caused the freezing-on-start.
If i dont find any other regressions or something, i might release this as 0.22 later today, even though AVI is still broken. :p
For the version after that, i'm going to implement a mode where LAV Splitter can be fed from an external file source, and doesn't have to open the file itself. As it happens, this can then be used with the AVI File Source that MS forces on you, as well as Streaming sources (in some cases), and a whole lot of other things. Using the File Source that MS uses for AVI (and other formats) is a whole lot less invasive then forcing me to be the source filter when i could just as well be "only" a splitter.
Of course this won't work with BluRays, and their 100 files to open. ;)
Underground78
10th April 2011, 19:05
I just fixed another bug with mpeg-ts programs that caused the freezing-on-start.
Thanks ! :)
If i dont find any other regressions or something, i might release this as 0.22 later today, even though AVI is still broken. :p
I still have some problems with a mkv file, if I try to change the audio track, the audio stops playing : sample.mkv (http://www.mediafire.com/?fub83pmbmckm146) ...
Have you been able to reproduce the problem or is it only on my side ?
For the version after that, i'm going to implement a mode where LAV Splitter can be fed from an external file source, and doesn't have to open the file itself. As it happens, this can then be used with the AVI File Source that MS forces on you, as well as Streaming sources (in some cases), and a whole lot of other things. Using the File Source that MS uses for AVI (and other formats) is a whole lot less invasive then forcing me to be the source filter when i could just as well be "only" a splitter.
Does it mean LAV Splitter will be able to replace the MS Demultiplexer in MPC-HC capture mode ? It would be great to have something like DVB Source --> LAV Splitter --> MPC-HC DXVA internal decoders which is currently impossible with the MS Demultiplexer.
nevcairiel
10th April 2011, 19:51
I don't have a DVB card, so no idea how that thing works exactly, but yes, it could be possible.
Can you post the Output Media Type of the DVB Source?
SamuriHL
10th April 2011, 19:52
Nev, is your plan for HD bitstreaming to reuse the code from ffdshow? Just curious how much research you've done on that. Thanks!
nevcairiel
10th April 2011, 19:52
I'm not reusing any code from ffdshow, their code is just so ugly. :)
ffmpeg itself already implements HD bitstreaming (which was added just a few month ago), going to use that.
nevcairiel
10th April 2011, 19:54
Have you been able to reproduce the problem or is it only on my side ?
Works fine for me, ffdshow for video, LAV Audio for audio. Needs more details.
SamuriHL
10th April 2011, 19:55
I'm not reusing any code from ffdshow, their code is just so ugly. :)
ffmpeg itself already implements HD bitstreaming (which was added just a few month ago), going to use that.
It does? Neat. Wasn't aware of that. Well that'll be nice. Cause right now I'm only using ffdshow for the audio bitstreaming. Everything else is done through your code, mpc-hc, and madshi's code. I'd love to remove the ffdshow dependency.
Underground78
10th April 2011, 20:07
I don't have a DVB card, so no idea how that thing works exactly, but yes, it could be possible.
Can you post the Output Media Type of the DVB Source?
Is this what you want ?
Filter : Hauppauge WinTV 88x TS Capture - CLSID : {17CCA71B-ECD7-11D0-B908-00A0C9223196}
- Connected to:
CLSID: {AFB6C280-2C41-11D3-8A60-0000F81E0E4A}
Filter: MPEG-2 Demultiplexer
Pin: MPEG-2 Stream
- Connection media type:
Unknown
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Stream {E436EB83-524F-11CE-9F53-0020AF0BA770}
subtype: Unknown GUID Name {F4AEB342-0329-4FDD-A8FD-4AFF4926C978}
formattype: FORMAT_None {0F6417D6-C318-11D0-A43F-00A0C9223196}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 58656
cbFormat: 0
nevcairiel
10th April 2011, 20:10
MEDIATYPE_Stream looks good in principal. It might however be that a Capture Filter works in Push Mode, and my splitter will for the time being only support pull mode..
I have DVB-C available at my place, just no card to test it .. maybe i should get one cheap somewhere.
robpdotcom
10th April 2011, 20:15
Cause right now I'm only using ffdshow for the audio bitstreaming. Everything else is done through your code, mpc-hc, and madshi's code. I'd love to remove the ffdshow dependency.
Same here. I didn't think I'd ever not need ffdshow, but the day seems to be drawing near.
It just kind of makes more sense to use the splitter anyway - using a decoder for bitstreaming seems like a bit of an oxymoron.:confused:
Speaking of removing dead weight, are there any plans in the near future to support ordered chapters and segment linking in LAV Splitter? Or will we still need Haali for that? I've seen it brought up before, but I don't recall any comments from nevcairiel.
nevcairiel
10th April 2011, 20:22
It just kind of makes more sense to use the splitter anyway - using a decoder for bitstreaming seems like a bit of an oxymoron.
I'm still undecided on this. In the splitter would be easier, but doing it in the audio decoder would also work with other splitters - then again, screw other splitters. :)
Speaking of removing dead weight, are there any plans in the near future to support ordered chapters and segment linking in LAV Splitter? Or will we still need Haali for that? I've seen it brought up before, but I don't recall any comments from nevcairiel.
Near future? No.
Some time? Sure.
Mercury_22
10th April 2011, 20:27
MEDIATYPE_Stream looks good in principal. It might however be that a Capture Filter works in Push Mode, and my splitter will for the time being only support pull mode..
I have DVB-C available at my place, just no card to test it .. maybe i should get one cheap somewhere.
I have the older model (Cinergy HTC USB XS HD) and it's great so I recommend you this one Cinergy HTC Stick HD (http://www.terratec.net/en/products/technical-data/produkte_technische_daten_en_145488.html)
SamuriHL
10th April 2011, 21:02
Same here. I didn't think I'd ever not need ffdshow, but the day seems to be drawing near.
It just kind of makes more sense to use the splitter anyway - using a decoder for bitstreaming seems like a bit of an oxymoron.:confused:
Speaking of removing dead weight, are there any plans in the near future to support ordered chapters and segment linking in LAV Splitter? Or will we still need Haali for that? I've seen it brought up before, but I don't recall any comments from nevcairiel.
Yea, I was using ffdshow for quite a few things video related before but lately madVR is providing everything I need so long as I can get it some decoded video. On my main HTPC the world is wide open as to which decoder I use for that (currently Cyberlink Video decoder in HAM mode) but on my bedroom machine I've been super limited and until LAV CUVID I had zero options for using madVR. But now with LAV CUVID I can once again crank madVR up on that machine, as well, so really the only thing I need ffdshow for is audio bitstreaming. I have NOTHING against ffdshow at all, but, I'm of the opinion the less installed to do the most functions the better.
Nev's planning on ordered chapters at some point.
SamuriHL
10th April 2011, 21:03
I'm still undecided on this. In the splitter would be easier, but doing it in the audio decoder would also work with other splitters - then again, screw other splitters. :)
I don't really care either way. Let's put it in a different context...what's the QUICKEST way to get it done so we don't have to use ffdshow for it anymore? :D
nevcairiel
10th April 2011, 21:18
Quickest is in the splitter, of course - i could just chain the spdif/hdmi muxer after the demuxing, and all would be good. (over simplified, of course)
Mercury_22
10th April 2011, 21:19
Yea, I was seeing something like that, as well, but attributed it to my machine just being painfully slow. If you have that issue, as well, then maybe there's something else going on.
With the latest version Nevcairiel-LAVFSplitter-0.21-25-gef87b91 (http://www.multiupload.com/4HFKGADR93) the PGS "delay" seems to be solved can you confirm ?
SamuriHL
10th April 2011, 21:22
Quickest is in the splitter, of course - i could just chain the spdif/hdmi muxer after the demuxing, and all would be good. (over simplified, of course)
Yes, please! :)
SamuriHL
10th April 2011, 21:23
With the latest version the PGS "delay" seems to be solved can you confirm ?
I'm not sure if I'll have a chance to do that today. I've got it built and installed so I'll see what I can do but I'm not sure it'll be soon. Got a lot to do tonight. :)
Underground78
10th April 2011, 21:30
Works fine for me, ffdshow for video, LAV Audio for audio. Needs more details.
I use MPC-HC internal decoder and LAV Audio. When I change the audio track, the sound stops but the video track keeps playing and when I try to right click into MPC-HC windows I get this error :
http://i.imgur.com/j0qbd.png (french for : "unspecified error")
MEDIATYPE_Stream looks good in principal. It might however be that a Capture Filter works in Push Mode, and my splitter will for the time being only support pull mode..
I have DVB-C available at my place, just no card to test it .. maybe i should get one cheap somewhere.
I am not totally sure but I think push mode is needed.
nevcairiel
10th April 2011, 21:48
That error only happens if something went terribly wrong .. The sample you linked even has two identical audio tracks (with identical i mean same codec, same channels, same bitrate), which should make the switching so much easier to begin with.
Did you try with another audio decoder?
Underground78
10th April 2011, 21:54
That error only happens if something went terribly wrong .. The sample you linked even has two identical audio tracks (with identical i mean same codec, same channels, same bitrate), which should make the switching so much easier to begin with.
Did you try with another audio decoder?
I tried first the internal audio decoder and I had this error. I though it could be decoder related so I tried LAV Audio after and got the same crash again ...
Ger
10th April 2011, 22:01
All samples from my last batch of uploads fixed in ef87b91. :thanks:
This means 100% of the DVB samples I've recorded myself (at least the ones I've tested) now play with LAV Splitter. :)
SamuriHL
10th April 2011, 23:40
With the latest version Nevcairiel-LAVFSplitter-0.21-25-gef87b91 (http://www.multiupload.com/4HFKGADR93) the PGS "delay" seems to be solved can you confirm ?
Well, sort of I think. I have one particularly troubling file that I use to abuse decoders. :D When I enabled the subs, it missed the first set of subs. After that, everything was fine. So I can't really tell you if it's fixed in every case or not.
Aleksoid1978
11th April 2011, 06:19
It start to play, but i can't seek it, timer stop. :(
Yes - it's open, start play and stop or freeze - on different Decoder.
Dogway
11th April 2011, 10:11
I can't seek in avc+aac MOV, MPC crashes in version 0.20. Version 0.21 too.
Please check the clip to know if its only me, I checked several AV configurations already. Haali has no problems.
mov 20Mb:
http://www.mediafire.com/?z63jnex9rwv9mvj
Mercury_22
11th April 2011, 11:40
I can't seek in avc+aac MOV, MPC crashes in version 0.20. Version 0.21 too.
Please check the clip to know if its only me, I checked several AV configurations already. Haali has no problems.
mov 20Mb:
http://www.mediafire.com/?z63jnex9rwv9mvj
No problem here using Nevcairiel-LAVFSplitter-0.21-26-gd96cd94 (http://www.multiupload.com/3SL36ZVRNI)
CruNcher
11th April 2011, 12:22
V0lts Canal HD sample still crashes with Cyberlinks Decoder that's sad really as it is the only H.264 .ts stream that crashes Cyberlinks Decoder with Lav splitter so far it did this with Haalis splitter to if i remember right, not sure if it's a LAV splitter bug though or the way Cyberlinks Decoder needs to get this stream presented, it's really a heavy issue as it's only working on Cyberlinks Decoder via either Arcsofts or Cyberlinks Demuxer the MPC-HC splitter cant connect to Cyberlinks Decoder, Haalis crashes, Lav splitter crashes too :(
Lav Audio Decoder works fine on Cyberlinks or Arcsofts Demuxer i guess their is no fix for this Crash unless someone finds out how Arcsofts and Cyberlinks Demuxer work :(
Arcsoft Mpeg Demuxer (ok)
http://img9.imageshack.us/img9/3104/arcsoftok.png
Cyberlink Demuxer 2.0 (ok)
http://img683.imageshack.us/img683/7808/cyberlinkok.png
Haali Splitter (fails)
http://img233.imageshack.us/img233/7910/haalicrash.png
MPC-HC Splitter (fails)
http://img402.imageshack.us/img402/5058/mpchcfail.png
Lavf Splitter (fails)
http://img835.imageshack.us/img835/295/cyberlinkcrash.png
nevcairiel
11th April 2011, 12:33
i guess their is no fix for this Crash unless someone finds out how Arcsofts and Cyberlinks Demuxer work :(
There is, use another decoder. :)
The Cyberlink decoder has caused nothing but headaches.
CruNcher
11th April 2011, 12:58
Yes but its the only DXVA filter that survives this test so far http://forum.doom9.org/showpost.php?p=1488268&postcount=6181 all the other DXVA and Nvcuvid fail with this Stream on VP2 and VMR9 Renderless (Intel H67) :( And it was freezing in the beginning on V0lts Canal HD sample with Lav Splitter now it crashes same as on Haalis (the crash is caused inside the Decoder) :( I had never issues with Cyberlinks Decoder and DXVA (Nvidia) except on 1 .mp4 H.264 bitstream it shows no picture else it worked rather flawless though now i can count this to a major problem with it too :(
nevcairiel
11th April 2011, 13:09
VP2 hardware just is not fast enough for 60fps decoding, we established that already. The Cyberlink decoder probably knows that and switches into partial acceleration mode, using the CPU for the actual decoding, just doing MoComp and IDCT on the GPU.
If you want 60fps DXVA, get a VP4 card. :) Or simply decode in software...
Anyway, this is off-topic, and does not belong in this thread, so please no further comments on the DXVA issue.
The Cyberlink decoder is a black box, the same goes for the Cyberlink Demuxer. Those are stolen from a commercial player, and there is no chance of ever getting information from Cyberlink how their stuff works or why it crashes - its impossible to debug without the first hint why the crash happens. Considering how the crash also happens with other "open" demuxers, its not something that i will really invest any more time in.
And with this, the discussion ends for me, sorry.
CruNcher
11th April 2011, 13:31
Nice thesis about partial acceleration (would be hyper smart) but this rejects it
http://img852.imageshack.us/img852/166/noeasyitanswers.png
The Bitstream is not as complex as the 4 Girls Clip (that one is very complex and needs every resource it can get from the VPx and some small improvement for MVC for example could allready explain your VP4 results, higher clock rate most probably for the 3D stuff) it's made to play on the PS3 most probably made with Sony's Blu-Code Encoder ;)
hmm wait why is it shown being 25 fps in DgIndexNV Caption Display (maybe it was default replaced in the bitstream by mkvmerge ?), this would indicate the bitstream is signaling it, though the .mp4 is signaling Frame rate: 59.940 but why this should cause most Decoder to go hi wire after 12 seconds playback and why only on VMR9 Renderless :P
Anyway you made your point clear and i can fully understand it so i have to find a workaround, clear though every other Decoder will fail with the above explained thing guess i have to be happy with that every other of them fails for now though it's only this Sony Wipeout bitstream and i have not found any other that's causing this drops after 12 seconds (so far) that's a little relieving also i found a better configuration for Mainconcepts H.264 DXVA and Lav Splitter though on that Canal HD sample Mainconcepts DXVA (very important setting with lav Splitter is Stream Order = Off else it jumps around like crazy, and Media Time Mode = Frame Number,Synchronization PTS reference only seems fine) fails with strange artifacting especially in motion on that stream (im pretty sure this stream comes out from a Ateme Hardware Encoder, especially the perfect Noise quality indicates that never saw Tandberg or others being so good in PSY like X264 only Ateme can do that equally in a Broadcast enviroment) not sure if that artifacting is caused by wrong splitter handling yet though only tested with lav splitter so far connected to Mainconcept DXVA :(
Funny neither Arcsoft nor Cyberlinks Demuxer allow Mainconcept to switch into DXVA mode with this stream so no artifacts
nevcairiel
11th April 2011, 17:17
LAV Filters 0.22
LAV Splitter
- Added support for MKV embedded fonts
- Improved VC-1 and H264 parsing
- Fixed choppy XVID playback in MKV
- Fixed a seeking issues that caused incompatibilitys with certain decoders (eg. a crash in ffdshow libmpeg2)
- No longer report incomplete lists of keyframes via IKeyFrameInfo, as it would break seeking in certain players.
- Allow opening all .mpls files if the user directly specifys to open one, even if it contains loops or duplicate titles.
- Improved playback of MPEG-TS with multiple programs
- Added new debugging option (Generate missing timestamps)
Download: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.22.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.22-x64.zip)
First, a short statistic of the changes since 0.21
33 files changed, 972 insertions(+), 302 deletions(-)
Thats alot of lines of code.
Anyhow, VC-1 in both MPEG-TS and MKV should work hopefully flawlessly, without Frame Time Correction, in a multitude of decoders - man that took some serious doing.
In other news, H264 also got a new parser, which should also remove the need for Frame Time Correction again.
What else..
Right! The new "Generate missing timestamps" options. Its OFF by default, for a good reason. On the most files, it'll most likely destroy fluidity. However, on some files, it might help. For example, its always on for VC-1 in MKV. If you have a file that seems to play at the wrong speed, or not at all, or just choppy, try ticking that option, and see what happens. If it fixes a particular case for you, please report which settings you used, together with a sample file - and i can code in some logic.
And boo, AVI on Vista/7 is still broken. :p
Next up is working on supporting taking data from the "File Source (Async)", which will allow LAV Splitter to cooperate with the default MS AVI setup, rather then forcefully replace it - so that will be dealt with sooner or later.
Have fun.
PS:
The two EVO samples you guys send me, for some arcane reason, they play fine now -- At least with the Cyberlink Decoder - ffdshow seems to get the FPS wrong, guess its not listening to pulldown flags, but its smooth otherwise, just heavily out of sync. But perfect with Cyberlink, or LAV CUVID, or ArcSoft. :)
SamuriHL
11th April 2011, 17:28
Good Lord. That's a huge changelist. :) Thanks for your incredibly hard work, Nev! Off to build me a new release. Hopefully clsid can clean up his script for building an installer soon as that would really be handy, as well.
madshi
11th April 2011, 17:29
Thanks! :)
This may be mainly interesting to developers, but anyway, would you mind giving me some background info on this whole frame time correction mess? Where do the problems come from? Are the files badly muxed? Or the decoders stupid? And how did you fix the problems exactly? Thanks!
fastplayer
11th April 2011, 17:36
In other news, H264 also got a new parser, which should also remove the need for Frame Time Correction again.
<n00b-Alert>Is libavformat's parser not good enough?</n00b-Alert>
How much does LAVSplitter deviate from upstream by now?
Have fun.
I will. :)
:thanks:
Underground78
11th April 2011, 17:46
Registering the audio filter seems to make MPC-HC crash for me. Do you see this behavior ?
Edit : I still have the strange crash when switching the audio track, now it simply stops playing completely.
fps
11th April 2011, 17:51
Thanks for all the changes and new features of the last weeks!
Registering the audio filter seems to make MPC-HC crash for me. Do you see this behavior ?
Just wanted to post the same, MPCHC crashes as soon as a file is loaded, no matter if AC3 or DTS audio.
The splitter alone works fine.
I've also noticed that Enable Audio Stream Parsing is set in default configuration. Isn't this behaviour unwanted considering the info text that is displayed if I hover above the checkbox?
nevcairiel
11th April 2011, 17:56
This may be mainly interesting to developers, but anyway, would you mind giving me some background info on this whole frame time correction mess? Where do the problems come from? Are the files badly muxed? Or the decoders stupid? And how did you fix the problems exactly? Thanks!
For the record, all these issues never affected madVR once, always played just fine with it.
The option was added years back to fix VC-1 in MPEG-TS decoding, because for some reason the timestamp reordering for VC-1 B-Frames creates broken timestamps - at least in the internal VC-1 decoder (and the MS WMVideo Decoder).
What exactly causes the broken timestamps on those codecs, i cannot say.
Now, i don't think its a muxing issue, all files, including BluRays, show this problem - so i would assume that the VC-1 was muxed properly, we just didn't demux it properly.
Now, what i did to fix this was ask ffmpeg to give me Decoding Time Stamps (DTS) instead of Presentation Time Stamps (PTS). The DTS timestamps are already reordered, and playback was fine again. Added some checks if one of the affected decoders was used, and activated it when needed, and let ffmpeg to the parsing and timestamp correction.
The second part was to write a new parser for VC-1, for those codecs that do not need/want the timestamp correction.
Sadly i cannot use the ffmpeg parsers without them also correcting timestamps - so i wrote my own (based on the MPC-HC VC-1 parser), which looks for the VC-1 sync bytes and reassembles the MPEG-TS stream into full VC-1 frames, and sends those off to the decoder.
The puzziling part of the story is VC-1 in MKV. For some reason, its backwards. The container timestamps are just fine for MPC-HC and the WMVideo Decoder, but for the commercial decoders i have to activate ffmpegs parsing.
I wish i knew more about how decoding of B-Frames actually works and how they are muxed/timestamped, but i got it working with both EVR and madVR, and thats what counts, isn't it. :)
I Know this is rather vague, but i hope it still helps.
Snowknight26
11th April 2011, 17:56
The splitter's properties dialog shows "full subtiles" instead of "full subtitles" as one of the options for subtitle selection mode.
nevcairiel
11th April 2011, 18:01
Just wanted to post the same, MPCHC crashes as soon as a file is loaded, no matter if AC3 or DTS audio.
The splitter alone works fine.
Works fine for me. Actually, the audio decoder didnt change at all since 0.21. I'll do a full rebuild and reupload.
Also, x86 oder x64?
If x64, can you try in x86?
Edit:
Grab 0.22 again and see if it helped. Otherwise i'm out of ideas - everything is fine here. Only answer would be a crash in ffmpeg.
I've also noticed that Enable Audio Stream Parsing is set in default configuration. Isn't this behaviour unwanted considering the info text that is displayed if I hover above the checkbox?
Damn, i applied the wrong comment to the wrong field. bah :P
That comment was meant for the option below it.
Audio stream parsing, and video stream parsing, should always be on.
<n00b-Alert>Is libavformat's parser not good enough?</n00b-Alert>
How much does LAVSplitter deviate from upstream by now?
Its doing something completely different then the avformat parser.
The splitter's properties dialog shows "full subtiles" instead of "full subtitles" as one of the options for subtitle selection mode.
fixed, thanks.
Underground78
11th April 2011, 18:09
Grab 0.22 again and see if it helped. Otherwise i'm out of ideas - everything is fine here. Only answer would be a crash in ffmpeg.
Works fine now (well it's still crashing when I change the audio track) ! Thanks ! :)
nevcairiel
11th April 2011, 18:20
Works fine now (well it's still crashing when I change the audio track) ! Thanks ! :)
I still think thats related to some other filter, considering its only you thats happening to.
CruNcher
11th April 2011, 18:23
Something must have gone majorly wrong Nev not Cyberlink Decoder crashes anymore with V0lts sample but the avcodec-52.dll even with LAV CUVID as decoder, ehh it seems even more worse anything crashes here now with the splitter in avcodec-52.dll hmm could be a compiler issue ?
Underground78
11th April 2011, 18:25
I still think thats related to some other filter, considering its only you thats happening to.
Yes, you are right. AC3 Filter is to blame ... I don't really understand why it crashes with this sample and not some others thought.
CruNcher
11th April 2011, 18:36
Yep the old Mercury 0.21 build works seems the official 0.22 broke for Intel Core I5 2nd Generation at least
http://www.multiupload.com/3SL36ZVRNI <- works
http://files.1f0.de/lavf/LAVFilters-0.22.zip <- crashes in avcodec-52.dll Windows XP SP3 32 bit
hmm redownloading
nevcairiel
11th April 2011, 18:41
Just download 0.22 again, the first version was apparently bugged - replaced it after, dunno, 40 minutes.
Works perfectly on my HTPC, going to watch some BluRay with the new madVR now. :)
CruNcher
11th April 2011, 18:46
yep works now puh :)
Kaotech
11th April 2011, 18:47
Don't working here, if i change audio track the vidéo stop to play, with Lav audio, ffdshow audio decoder it work but with Arcsoft Audio Decoder Hd the video stop to play.
:confused:
CruNcher
11th April 2011, 18:52
Yep it stops to play also here sound continues on V0lts sample but to be true i didn't tried switching audio before, play around with the splitter settings it could fix it ;)
nevcairiel
11th April 2011, 18:52
Don't working here, if i change audio track the vidéo stop to play, with Lav audio, ffdshow audio decoder it work but with Arcsoft Audio Decoder Hd the video stop to play.
:confused:
That only happens if the ArcSoft decoder does not support the track. Is it Mono by any chance?
As a general rule, if some decoder causes problems, use another one! :)
What i see on BluRays with the ArcSoft decoder - it pauses for maybe a second, then resumes, both audio and video. All like its supposed to function.
Plutotype
11th April 2011, 19:14
What i see on BluRays with the ArcSoft decoder - it pauses for maybe a second, then resumes, both audio and video. All like its supposed to function.
this behaviour confirmed here with 0.22
mindbomb
11th April 2011, 19:16
if your having problems with the arcsoft decoder, grab the dtsdecoderdll.dll from the latest version.
For me, it fixed all problems with stereo 16 bit and mono tracks, and it still manages to output 24 bit pcm.
fps
11th April 2011, 19:27
Works fine for me. Actually, the audio decoder didnt change at all since 0.21. I'll do a full rebuild and reupload.
Also, x86 oder x64?
If x64, can you try in x86?
Edit:
Grab 0.22 again and see if it helped. Otherwise i'm out of ideas - everything is fine here. Only answer would be a crash in ffmpeg.
You were right, after downloading again everything works fine, thanks!
nevcairiel
11th April 2011, 19:35
if your having problems with the arcsoft decoder, grab the dtsdecoderdll.dll from the latest version.
For me, it fixed all problems with stereo 16 bit and mono tracks, and it still manages to output 24 bit pcm.
I can confirm that. Keep the ASAudioHD.ax from TMT3.185 and just get the dtsdecoderdll.dll from TMT5 - works just perfectly.
CruNcher
11th April 2011, 19:44
Hmm i currently use 1.3.3.262 old one was 1.3.3.255 which was a support fix and 1.1.0.8 dtsdecoderdll.dll
with it it doesn't stop with LAV CUVID + LAV Audio it does :P
LAV CUVID + Arcsoft Audio Decoder HD (fails)
LAV CUVID + LAV AUDIO (fails)
CoreAVC 2.5.1 CUDA + LAV AUDIO (the switch is very low delay, but after it gets totaly out of sync)
CoreAVC 2.5.1 CUDA + Arcsoft Audio Decoder HD (same as with LAV AUDIO)
CoreAVC 2.5.1 CUDA + ffdshow Audio (switch kills 1 frame and after that goes unsync as well)
LAV CUVID + ffdshow Audio (same as above)
wow seems at least all Nvcuvid fail with switching on V0lts Canal HD sample
Cyberlink Demuxer 2.0 + Lav Audio Decoder + Cyberlink Decoder DXVA (perfect result switch takes some seconds blending in 4 seconds ? but stays sync)
Kaotech
11th April 2011, 19:49
That only happens if the ArcSoft decoder does not support the track. Is it Mono by any chance?
As a general rule, if some decoder causes problems, use another one! :)
What i see on BluRays with the ArcSoft decoder - it pauses for maybe a second, then resumes, both audio and video. All like its supposed to function.
No it's a 5.1 track, i remember when i register LAVAudio.ax with 0.19, I could change audio Track, i don't know why it no longer works.
VipZ
11th April 2011, 19:52
LAV Filters 0.22
PS:
The two EVO samples you guys send me, for some arcane reason, they play fine now -- At least with the Cyberlink Decoder - ffdshow seems to get the FPS wrong, guess its not listening to pulldown flags, but its smooth otherwise, just heavily out of sync. But perfect with Cyberlink, or LAV CUVID, or ArcSoft. :)
Cool thanks, new build working well for me :)
HomeY_
11th April 2011, 20:07
GREAT job on the VC-1 (MKV) issues! So far everything seems very very nice. Finally 1 splitter that handles all i need.
TNX for the efforts Nevcairiel! :D
SamuriHL
11th April 2011, 20:19
Nev, just a note that the latest version fixes an issue with a ts file that would be hard to explain. Just know that it's h.264/AC3 in a ts container and wasn't playing before and is now. :)
Sebastiii
11th April 2011, 20:24
Hi Nevcairiel :) Nice job :) Thank you you fixed it :)
Happy man :)
Seb.
nevcairiel
11th April 2011, 20:32
<< big blob of nonsense >>
Delete that Canal HD sample, now.
Its just a broken file, be done with it already.
What happens is that switches cause a Flush, because the graph is stopped, and the decoder does not survive the flush, it forgets how to decode the image. (seeing how you can also not seek in it)
Now, delete it.
SamuriHL
11th April 2011, 20:33
Ok, I have a file that seems highly broken. It'll play if I leave it alone. If I try to seek, it takes me out of full screen mode and "pauses" the video. When I "resume" it's from the beginning again. I need to test more to see where the issue is. (Danger of testing too many changes at once. I've got madshi's new madVR version running, as well. Man this is such an AWESOME setup!) Will let you know if it's a LAV Splitter issue. My MPC-HC settings are overly simplified now. ffdshow for bitstreaming ONLY, LAV Splitter, Cyberlink Decoder (I'm testing on the AMD machine) in HAM mode, and madVR for rendering. The file in question was made recently with my HD PVR and hasn't been edited yet. I can fix the file but if you want a sample that can break to test with if I determine it's happening with all renderers and decoders, then I can make it available.
CruNcher
11th April 2011, 20:35
Delete that Canal HD sample, now.
Its just a broken file, be done with it already.
What happens is that switches cause a Flush, because the graph is stopped, and the decoder does not survive the flush, it forgets how to decode the image. (seeing how you can also not seek in it)
Now, delete it.
And how can Cyberlinks and Arcsoft Demuxer survive this with any Decoder even yours ?
nevcairiel
11th April 2011, 20:41
And how can Cyberlinks and Arcsoft Demuxer survive this with any Decoder even yours ?
Who cares.
The file does not work, get over it. You're really trying my patience constantly hammering on one broken file. Leave it alone, yes i know, that file is broken. Its not my fault, ffmpeg just doesn't like it.
Want it fixed? Open a bug report at their place.
I'm done, just use the Cyberlink Demuxer if its so super great, jeez.
pankov
11th April 2011, 20:41
nev,
if I'm not asking too much could you, please, add an option to not expose embedded DVB subtitles?
I ... and I suppose many others ... need this because a lot of broadcasters add a subtitle stream which is often empty and sadly it forces the player (ZoomPlayer in my case) to add it's subtitle renderer (VobSub or FFDShow) and this could ruin the Deinterlacing that is usually needed for boradcasts.
Thanks to italospain from the LAV CUVID thread I know that it's possible to get great deinterlacing and still have subs but nevertheless this only works with FFDShow and not with VobSub which is the default subtitles renederer in ZoomPlayer.
I have one more request
can you tell me where I can see all the media subtypes and the formats they are used for that LAV Splitter outputs?
I've just noticed that I have problems in ZoomPlayer with some files that have E-AC3 audio tracks which Haali's splitter outputs as simple AC3 and work fine but your splitter outputs {A7FB87AF-2D02-42FB-A4D4-05CD93843BDD} (which AFAIK is the correct type) (or {AFBC2343-3DCB-4047-9655-E1E62A61B1C5}) and Zoomplayer gives an errour about unknown subtype.
The solution in ZoomPlayer is simple - I'll just add the new subtype to a new profile, but just wanted to do it for all subtypes, not wait for the next problematic one.
nevcairiel
11th April 2011, 20:46
but just wanted to do it for all subtypes, not wait for the next problematic one.
There is no comprehensive list of all types.
Alot of types are simple types based on the FourCC (not even listed anywhere), the others can only be seen in the source, sometimes scattered a bit.
First function in this file, for example, for audio
http://git.1f0.de/gitweb?p=lavfsplitter.git;a=blob;f=demuxer/Demuxers/LAVFAudioHelper.cpp;h=23a2083009dee434f2539e8b997092edb4d3129f;hb=HEAD
Or here for video:
http://git.1f0.de/gitweb?p=lavfsplitter.git;a=blob;f=demuxer/Demuxers/LAVFVideoHelper.cpp;h=d38e747a5305ea0bd2a8f5ef5cf5be49f522cb71;hb=HEAD
But thats not all (and of course the symbolic names). :P
Kaotech
11th April 2011, 20:48
No it's a 5.1 track, i remember when i register LAVAudio.ax with 0.19, I could change audio Track, I don't know why it no longer works.
I found the problem, it's when I connect ffdshow audio processor.
I Disabled "Enable jitter correction", and now it's working.
SamuriHL
11th April 2011, 20:58
Nev, my file does break with LAV Splitter, but, I'm not terribly concerned. I tried to trim the first 100 megs from it and that works fine. (I use the Video ReDo file trim function which doesn't modify anything). So I can easily fix it. But it is the splitter as when I use the MPC-HC internal MPEG-TS splitter I can seek fine. Odd. If you want the file to play around with let me know. It's 5 gigs, though. :) Otherwise I'll fix it when I cut the commercials anyway.
nevcairiel
11th April 2011, 21:19
Nev, my file does break with LAV Splitter, but, I'm not terribly concerned. I tried to trim the first 100 megs from it and that works fine. (I use the Video ReDo file trim function which doesn't modify anything). So I can easily fix it. But it is the splitter as when I use the MPC-HC internal MPEG-TS splitter I can seek fine. Odd. If you want the file to play around with let me know. It's 5 gigs, though. :) Otherwise I'll fix it when I cut the commercials anyway.
You could run a debug build and see what the log in DebugView says.
SamuriHL
11th April 2011, 21:38
You could run a debug build and see what the log in DebugView says.
Yup I can do that. As soon as I'm done with work I'll give that a try.
madshi
11th April 2011, 21:44
For the record, all these issues never affected madVR once, always played just fine with it.
Some months ago I added code to madVR to correct swapped timestamps, because that was the only way to make VC-1 Blu-Rays play correctly with the MPC-HC internal TS splitter. That's probably why you don't see a problem with madVR. It's not really ideal if madVR has to do that, though. If timestamps are swapped madVR does not really know for 100% sure which timestamp originally belonged to which frame. So there's a small danger of audio/video sync being imperfect.
The option was added years back to fix VC-1 in MPEG-TS decoding, because for some reason the timestamp reordering for VC-1 B-Frames creates broken timestamps - at least in the internal VC-1 decoder (and the MS WMVideo Decoder).
What exactly causes the broken timestamps on those codecs, i cannot say.
What I can say is that eac3to has always muxed VC-1 frames with simply increasing timestamps. Meaning, the first VC-1 frame in the video bitstream in an eac3to muxed MKV file has timestamp 0. The second VC-1 frame has timestamp 41708. Etc. This worked just fine with Haali MKV Splitter -> MS VC-1 decoder -> any renderer. So it seems to me that the MS VC-1 decoder expects to simply get increasing timestamps for every VC-1 frame in the bitstream. That's probably similar to DTS, I guess?
Now, what i did to fix this was ask ffmpeg to give me Decoding Time Stamps (DTS) instead of Presentation Time Stamps (PTS). The DTS timestamps are already reordered, and playback was fine again.
Ok, makes sense.
The second part was to write a new parser for VC-1, for those codecs that do not need/want the timestamp correction.
Sadly i cannot use the ffmpeg parsers without them also correcting timestamps - so i wrote my own (based on the MPC-HC VC-1 parser), which looks for the VC-1 sync bytes and reassembles the MPEG-TS stream into full VC-1 frames, and sends those off to the decoder.
Hmmmm... So there are 3 variations? I can understand the difference between PTS and DTS. But what is the 3rd variation? I understand ffmpeg can output either PTS or DTS. That makes sense. But some of the commercial decoders expect neither PTS nor DTS but something else??
The puzziling part of the story is VC-1 in MKV. For some reason, its backwards. The container timestamps are just fine for MPC-HC and the WMVideo Decoder, but for the commercial decoders i have to activate ffmpegs parsing.
That might partially be my fault because eac3to was the first application to properly mux VC-1 Blu-Ray movies to MKV, so I might have defined the timestamp logic for VC-1 MKV muxing... :p And as I said, eac3to simply muxes frames with simple increasing timestamps.
To be honest, I wouldn't know how to produce any other timestamps than those. I mean MPEG2 has a bitsteam field "temporal_reference" which tells us the relation between DTS <-> PTS. h264 has a similar bitstream field, too. But VC-1 has not.
nevcairiel
11th April 2011, 21:50
Some months ago I added code to madVR to correct swapped timestamps, because that was the only way to make VC-1 Blu-Rays play correctly with the MPC-HC internal TS splitter. That's probably why you don't see a problem with madVR. It's not really ideal if madVR has to do that, though. If timestamps are swapped madVR does not really know for 100% sure which timestamp originally belonged to which frame. So there's a small danger of audio/video sync being imperfect.
So thats why, neato :p
With latest LAV Splitter, i could not get it to break again with any of the decoders i tried on EVR, so it might be all better now. :)
Hmmmm... So there are 3 variations? I can understand the difference between PTS and DTS. But what is the 3rd variation? I understand ffmpeg can output either PTS or DTS. That makes sense. But some of the commercial decoders expect neither PTS nor DTS but something else??
No, its just PTS, the only change is that i had to create a parser so i can send exactly one complete frame per media sample. Some of the decoders did not like getting partial frames and re-assembling them themself - this caused them to go weird with the timestamps again. But this is just decoders being buggy, i figure.
ffmpeg has a parser to do this, but it changes the timestamps while doing so. I mostly copied the concept of this from MPC-HC, as it seemed to work there just fine.
madshi
11th April 2011, 22:08
No, its just PTS, the only change is that i had to create a parser so i can send exactly one complete frame per media sample. Some of the decoders did not like getting partial frames and re-assembling them themself - this caused them to go weird with the timestamps again. But this is just decoders being buggy, i figure.
ffmpeg has a parser to do this, but it changes the timestamps while doing so. I mostly copied the concept of this from MPC-HC, as it seemed to work there just fine.
Got it, makes sense. Yeah, I remember some decoders breaking when eac3to muxed partial video frames in some early version. Had to make sure that video frames are completely muxed, otherwise some decoders would show artifacts. So yes, it's definitely a good idea to send whole frames to decoders, not partial frames.
Midzuki
11th April 2011, 22:42
Thanks for these very-informative posts. :) :) :)
Now I am sure, VC-1 is a b0rked format, and it is best-stored in b0rked containers like ASF :devil: and AVI :D
SamuriHL
11th April 2011, 22:58
Nev or anyone else. I don't have MSVC installed on my HTPC for many reasons. When I try to register the debug LAV Splitter it complains that there's missing dll's. I'm quite sure this is because it doesn't have the debug version of the VC++ 2010 runtime. Where can I get that?
pankov
11th April 2011, 22:59
There is no comprehensive list of all types.
Alot of types are simple types based on the FourCC (not even listed anywhere), the others can only be seen in the source, sometimes scattered a bit.
First function in this file, for example, for audio
http://git.1f0.de/gitweb?p=lavfsplitter.git;a=blob;f=demuxer/Demuxers/LAVFAudioHelper.cpp;h=23a2083009dee434f2539e8b997092edb4d3129f;hb=HEAD
Or here for video:
http://git.1f0.de/gitweb?p=lavfsplitter.git;a=blob;f=demuxer/Demuxers/LAVFVideoHelper.cpp;h=d38e747a5305ea0bd2a8f5ef5cf5be49f522cb71;hb=HEAD
But thats not all (and of course the symbolic names). :P
Thanks, Nev.
I've found those two links in the MSDN
http://msdn.microsoft.com/en-us/library/dd317599%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/dd407353%28v=vs.85%29.aspx
but sadly they too use the symbolic names. Any idea where I can find the actual values of these constants in format like this {AFBC2343-3DCB-4047-9655-E1E62A61B1C5}? Sadly I don't have Visual Studio. Is there any chance I can get these .h files (mentioned in the articles) separately?
SamuriHL
11th April 2011, 23:29
Alright, fine, I just simply set up my laptop so I can use the debug version on here and ran it that way. Hope this helps, Nev, cause it was a major pain in the....yea, anyway. :D
00000000 0.00000000 [6748] Loading modified build of detours library designed for MPC-HC player (http://sourceforge.net/projects/mpc-hc/)
00000001 5.75534630 [6748] LAVSplitter.ax(tid 6c8) 2 : Probed with size=2048 and score=100
00000002 5.75601625 [6748] LAVSplitter.ax(tid 6c8) 3 : [mpegts @ 0044B9A0] stream=0 stream_type=1b pid=1011 prog_reg_desc=HDMV
00000003 5.75655222 [6748] LAVSplitter.ax(tid 6c8) 3 : [mpegts @ 0044B9A0] stream=1 stream_type=81 pid=1100 prog_reg_desc=HDMV
00000004 5.75660229 [6748] LAVSplitter.ax(tid 6c8) 3 : ::Open(): av_open_input_file opened file of type 'mpegts'
00000005 5.79587269 [6748] LAVSplitter.ax(tid 6c8) 43 : [h264 @ 00443250] no picture
00000006 5.91842413 [6748] LAVSplitter.ax(tid 6c8) 165 : [mpegts @ 0044B9A0] Probe buffer size limit 5000000 reached
00000007 5.92643833 [6748] LAVSplitter.ax(tid 6c8) 173 : Stream 0 (pid 4113) - codec: 28; parsing: AVSTREAM_PARSE_FULL;
00000008 5.92648220 [6748] LAVSplitter.ax(tid 6c8) 173 : Stream 1 (pid 4352) - codec: 86019; parsing: AVSTREAM_PARSE_FULL;
00000009 5.94545364 [6748] LAVSplitter.ax(tid 6c8) 192 : Trying to connect Pins :
00000010 5.94551945 [6748] LAVSplitter.ax(tid 6c8) 192 : <Video>
00000011 5.94559050 [6748] LAVSplitter.ax(tid 6c8) 192 : <Video In>
00000012 5.94565296 [6748] LAVSplitter.ax(tid 6c8) 192 : Trying media type:
00000013 5.94575262 [6748] LAVSplitter.ax(tid 6c8) 193 : major type: MEDIATYPE_Video
00000014 5.94665670 [6748] LAVSplitter.ax(tid 6c8) 193 : sub type : Unknown GUID Name
00000015 5.94920778 [6748] LAVSplitter.ax(tid 6c8) 196 : Connection succeeded
00000016 6.19655609 [6748] LAVSplitter.ax(tid 6c8) 443 : Trying to connect Pins :
00000017 6.19659424 [6748] LAVSplitter.ax(tid 6c8) 443 : <Audio>
00000018 6.19667673 [6748] LAVSplitter.ax(tid 6c8) 443 : <SP In>
00000019 6.19674826 [6748] LAVSplitter.ax(tid 6c8) 444 : Trying media type:
00000020 6.19679356 [6748] LAVSplitter.ax(tid 6c8) 444 : major type: MEDIATYPE_Audio
00000021 6.19686174 [6748] LAVSplitter.ax(tid 6c8) 444 : sub type : MEDIASUBTYPE_DOLBY_AC3
00000022 6.19692373 [6748] LAVSplitter.ax(tid 6c8) 444 : Trying media type:
00000023 6.19696760 [6748] LAVSplitter.ax(tid 6c8) 444 : major type: MEDIATYPE_Audio
00000024 6.19705057 [6748] LAVSplitter.ax(tid 6c8) 444 : sub type : Unknown GUID Name
00000025 6.19710350 [6748] LAVSplitter.ax(tid 6c8) 444 : Failed to agree type
00000026 6.21313906 [6748] LAVSplitter.ax(tid 6c8) 460 : Trying to connect Pins :
00000027 6.21317482 [6748] LAVSplitter.ax(tid 6c8) 460 : <Audio>
00000028 6.21321726 [6748] LAVSplitter.ax(tid 6c8) 460 : <In>
00000029 6.21328068 [6748] LAVSplitter.ax(tid 6c8) 460 : Trying media type:
00000030 6.21332550 [6748] LAVSplitter.ax(tid 6c8) 460 : major type: MEDIATYPE_Audio
00000031 6.21340132 [6748] LAVSplitter.ax(tid 6c8) 460 : sub type : MEDIASUBTYPE_DOLBY_AC3
00000032 6.21867990 [6748] LAVSplitter.ax(tid 6c8) 465 : Connection succeeded
00000033 6.41199017 [6748] AMD VLD 32
00000034 6.41624594 [6748] LAVSplitter.ax(tid 1a54) 663 : ::DeliverNewSegment on Video Pin (rtStart: 0; rtStop: 39476169780)
00000035 6.41652870 [6748] LAVSplitter.ax(tid 1a54) 663 : ::DeliverNewSegment on Audio Pin (rtStart: 0; rtStop: 39476169780)
00000036 6.78060675 [6748] LAVSplitter.ax(tid 1a54) 1027 : TIMING: av_read_frame took 38 ms
00000037 11.77170467 [6748] LAVSplitter.ax(tid 1d3c) 6018 : ::DeliverBeginFlush on Video Pin
00000038 11.79533577 [6748] LAVSplitter.ax(tid 1d3c) 6028 : ::DeliverBeginFlush on Audio Pin
00000039 11.79545593 [6748] LAVSplitter.ax(tid 1a54) 6030 : [mpegts @ 0044B9A0] read_seek: 0 16867692
00000040 11.79574776 [6748] LAVSplitter.ax(tid 1a54) 6042 : [mpegts @ 0044B9A0] gen_seek: 0 16867692
00000041 11.79584980 [6748] LAVSplitter.ax(tid 1a54) 6042 : [mpegts @ 0044B9A0] pos_min=0x234 pos_max=0x13a391e54 dts_min=1499 dts_max=983782
00000042 11.79591370 [6748] LAVSplitter.ax(tid 1a54) 6042 : [mpegts @ 0044B9A0] 564 5271789140 5271789140 / 1499 -9223372036854775808 983782 target:16867692 limit:5271789140 start:5271789140 noc:1
00000043 11.79599571 [6748] LAVSplitter.ax(tid 1a54) 6042 : [mpegts @ 0044B9A0] read_timestamp() failed in the middle
00000044 11.79605770 [6748] LAVSplitter.ax(tid 1a54) 6042 : ::Seek() -- Key-Frame Seek failed
00000045 11.79611778 [6748] LAVSplitter.ax(tid 1a54) 6043 : [mpegts @ 0044B9A0] read_seek: 0 16867692
00000046 11.79631805 [6748] LAVSplitter.ax(tid 1a54) 6043 : [mpegts @ 0044B9A0] gen_seek: 0 16867692
00000047 11.79641914 [6748] LAVSplitter.ax(tid 1a54) 6043 : [mpegts @ 0044B9A0] pos_min=0x234 pos_max=0x13a391e54 dts_min=1499 dts_max=983782
00000048 11.79648399 [6748] LAVSplitter.ax(tid 1a54) 6043 : [mpegts @ 0044B9A0] 564 5271789140 5271789140 / 1499 -9223372036854775808 983782 target:16867692 limit:5271789140 start:5271789140 noc:1
00000049 11.79653931 [6748] LAVSplitter.ax(tid 1a54) 6043 : [mpegts @ 0044B9A0] read_timestamp() failed in the middle
00000050 11.79661179 [6748] LAVSplitter.ax(tid 1a54) 6043 : ::Seek() -- Inaccurate Seek failed as well
00000051 11.79688263 [6748] LAVSplitter.ax(tid 1d3c) 6043 : ::DeliverEndFlush on Video Pin
00000052 11.83045864 [6748] LAVSplitter.ax(tid 1d3c) 6077 : ::DeliverEndFlush on Audio Pin
00000053 11.83066273 [6748] LAVSplitter.ax(tid 1a54) 6077 : ::DeliverNewSegment on Video Pin (rtStart: 1870317583; rtStop: 39476169780)
00000054 11.83109570 [6748] LAVSplitter.ax(tid 1a54) 6078 : ::DeliverNewSegment on Audio Pin (rtStart: 1870317583; rtStop: 39476169780)
00000055 11.83964157 [6748] LAVSplitter.ax(tid 1d3c) 6086 : ::DeliverBeginFlush on Video Pin
00000056 11.84001732 [6748] LAVSplitter.ax(tid 1d3c) 6087 : ::DeliverBeginFlush on Audio Pin
00000057 11.84013462 [6748] LAVSplitter.ax(tid 1a54) 6087 : [mpegts @ 0044B9A0] read_seek: 0 31680608
00000058 11.84018707 [6748] LAVSplitter.ax(tid 1a54) 6087 : [mpegts @ 0044B9A0] gen_seek: 0 31680608
00000059 11.84049511 [6748] LAVSplitter.ax(tid 1a54) 6087 : [mpegts @ 0044B9A0] pos_min=0x234 pos_max=0x13a391e54 dts_min=1499 dts_max=983782
00000060 11.84058571 [6748] LAVSplitter.ax(tid 1a54) 6087 : [mpegts @ 0044B9A0] 564 5271789140 5271789140 / 1499 -9223372036854775808 983782 target:31680608 limit:5271789140 start:5271789140 noc:1
00000061 11.84064102 [6748] LAVSplitter.ax(tid 1a54) 6087 : [mpegts @ 0044B9A0] read_timestamp() failed in the middle
00000062 11.84068584 [6748] LAVSplitter.ax(tid 1a54) 6087 : ::Seek() -- Key-Frame Seek failed
00000063 11.84073544 [6748] LAVSplitter.ax(tid 1a54) 6087 : [mpegts @ 0044B9A0] read_seek: 0 31680608
00000064 11.84078503 [6748] LAVSplitter.ax(tid 1a54) 6087 : [mpegts @ 0044B9A0] gen_seek: 0 31680608
00000065 11.84102249 [6748] LAVSplitter.ax(tid 1a54) 6087 : [mpegts @ 0044B9A0] pos_min=0x234 pos_max=0x13a391e54 dts_min=1499 dts_max=983782
00000066 11.84111309 [6748] LAVSplitter.ax(tid 1a54) 6088 : [mpegts @ 0044B9A0] 564 5271789140 5271789140 / 1499 -9223372036854775808 983782 target:31680608 limit:5271789140 start:5271789140 noc:1
00000067 11.84116268 [6748] LAVSplitter.ax(tid 1a54) 6088 : [mpegts @ 0044B9A0] read_timestamp() failed in the middle
00000068 11.84120560 [6748] LAVSplitter.ax(tid 1a54) 6088 : ::Seek() -- Inaccurate Seek failed as well
00000069 11.84125423 [6748] LAVSplitter.ax(tid 1d3c) 6088 : ::DeliverEndFlush on Video Pin
00000070 11.84368038 [6748] LAVSplitter.ax(tid 1d3c) 6090 : ::DeliverEndFlush on Audio Pin
00000071 11.84382725 [6748] LAVSplitter.ax(tid 1a54) 6090 : ::DeliverNewSegment on Video Pin (rtStart: 3516197056; rtStop: 39476169780)
00000072 11.84428787 [6748] LAVSplitter.ax(tid 1a54) 6091 : ::DeliverNewSegment on Audio Pin (rtStart: 3516197056; rtStop: 39476169780)
robpdotcom
12th April 2011, 01:45
I was trying out 0.22 today and noticed something I hadn't noticed before - TrueHD would not get bitstreamed by ffdshow when using LAVSplitter for mkv. For some reason, even though it is set to bitstream, ffdshow insists on decoding it. I also checked with version 0.19, and it did the same thing.
ts and m2ts give no problems, and I have no problem with mkv when using Haali or Gabest. I tried with several versions of ffdshow, and even with a TrueHD+AC3 stream muxed to mkv via SMM muxer.
mindbomb
12th April 2011, 05:08
possible lav splitter bug- dtshd tracks muxed with a delay with mkvmerge aren't recognized
http://www.mediafire.com/?avtg2vztfhp8467
~35 MB sample, ignore the fact the video doesnt match the audio, that part was intentional.
nevcairiel
12th April 2011, 06:37
Alright, fine, I just simply set up my laptop so I can use the debug version on here and ran it that way. Hope this helps, Nev, cause it was a major pain in the....yea, anyway. :D
If by helping you mean telling me that ffmpeg simply doesn't like the file, well, then yes!
f@chance
12th April 2011, 07:05
I have tried for the first time these splitter and audio filters and like them very much. Just a quick question though when using the LAV splitter and audio decoder I no longer get AC3 passthrough on just plain vanilla hdtv capped transport streams, is that by design or is there a setting that will enable bit streaming?
When I use the FFDshow audio decoder and the LAV splitter passthrough and bitstreaming works.
nevcairiel
12th April 2011, 07:06
My filters do not yet support bitstreaming. You'll have to use ffdshow if you want that.
f@chance
12th April 2011, 07:26
Thanks, I'll look forward to the time when you can implement this.
Dogway
12th April 2011, 08:09
No problem here using Nevcairiel-LAVFSplitter-0.21-26-gd96cd94 (http://www.multiupload.com/3SL36ZVRNI)
I see Graphstudio has no problems so guilty must be MPC, what version are you using? I even started from scratch again installing nVidia drivers,MPC-HC, LAVSplitter,LAVCUVID,madVR,ffdshow.
ffdshow defaults higher merit than LAVCUVID so I have to prefer it in MPC...
CruNcher
12th April 2011, 11:48
Nev did you take a look @ the sample_hd.ts stream (Hauppauge HDPVR record) and the wrong starttime (unsync issue) correction if Video Parsing is Enabled (when Video Parsing is disabled it's ok but that brakes 2 other samples 1 which goes unsync and another which stays entirely black (video)) i will try not to mention that another specific Splitter works with this as it seems you start to react allergic on that ;)
Though that specific filter also has years of development behind it so i guess it would take some time bringing your splitter to that stability (as their support already munched a lot of samples in those years in a dshow enviroment)
Mercury_22
12th April 2011, 13:11
I see Graphstudio has no problems so guilty must be MPC, what version are you using? I even started from scratch again installing nVidia drivers,MPC-HC, LAVSplitter,LAVCUVID,madVR,ffdshow.
ffdshow defaults higher merit than LAVCUVID so I have to prefer it in MPC...
See my Signature:)
SamuriHL
12th April 2011, 13:25
If by helping you mean telling me that ffmpeg simply doesn't like the file, well, then yes!
Hey I told you it was likely the file that was bad! :) However, just so you fully understand and are prepared for the future, that file was recorded on an HD PVR connected to a very finicky cable box. (It was a recording of the last episode of The Walking Dead which I still haven't actually had time to watch.) I'm telling you this for one reason only....because that thing creates REALLY messed up streams and you're likely to get a bunch of "broken" files posted from those devices. I spent months working with the Video ReDo guys providing them samples so that they could make Video ReDo very robust. That's why I wasn't worried. I know VRD handles them and I can run it through that and output perfectly fine files. It's just that you're going to see the inevitable "well, the internal splitter is fine with it" types of posts. I personally don't care and if you're not worried about it then we're all good.
SamuriHL
12th April 2011, 13:27
Nev did you take a look @ the sample_hd.ts stream (Hauppauge HDPVR record) and the wrong starttime (unsync issue) correction if Video Parsing is Enabled (when Video Parsing is disabled it's ok but that brakes 2 other samples 1 which goes unsync and another which stays entirely black (video)) i will try not to mention that another specific Splitter works with this as it seems you start to react allergic on that ;)
Though that specific filter also has years of development behind it so i guess it would take some time bringing your splitter to that stability (as their support already munched a lot of samples in those years in a dshow enviroment)
Oh look, Nev.....I think my point is proven. :D ROFLMAO! :p
CruNcher
12th April 2011, 13:35
My solution would be try to detect something specific about the HDPVR recordings and then turn of Video Parsing only for them as this fixes all samples i have here, it would be also the least invasive in terms of code changes that could brake other things ;)
@SamuriHL
do you have only sync issues or are their other problems as well with your recordings and LAV Splitter ?
could you provide a sample that shows other issues (no unsync ones) ?
I guess a big part here plays the ADTS muxing of the AAC streams, so detecting ADTS and then turning of Video Parsing could be a fix already, though a naughty one ;)
Mark_A_W
12th April 2011, 13:47
nevcairiel
I'm just now giving your splitter a go. I've searched through the thread and have found some discussions about timestamps.
I'm having slightly incorrect/strange behaviour for HD-DVD sourced VC-1 23.976fps mkv files (well, they were kinda 60i on the disc...HD-DVD was messy in this regard).
The results for the VC-1 Timestamp correction:
- Enabled: Reclock and madVR report 29.970 fps, video plays FAST, audio at normal rate, lipsync is immediately lost.
- Auto: Same as above.
- Disabled (checkbox cleared): Reclock reports 23.976 (correctly), madVR reports (29.970), playback is at correct speed.
From memory madVR just reports what the splitter tells it, so I think the splitter Timestamp Correction (or at least reporting) is probably doing the technically correct thing, it's just that it's wrong for these HD-DVD VC-1 streams. It's cosmetic only I think, but it's annoying/confusing.
Sorry if this has been mentioned before, I couldn't find it with a search (and there are 79 pages...).
Mark
SamuriHL
12th April 2011, 13:49
My solution would be try to detect something specific about the HDPVR recordings and then turn of Video Parsing only for them as this fixes all samples i have here, it would be also the least invasive in terms of code changes that could brake other things ;)
Good luck with that. There's nothing that I've seen that signify that it's an HD PVR recording. My advice to you is simple. Buy yourself a copy of VRD and run them through the stream fixer. :) You'll be doing yourself a huge favor.
CruNcher
12th April 2011, 14:04
Im not sure what to think about a Product where its developers give up on their own code and seek for help @ a 3rd party (though in investment time and providing fast fixes nothing wrong with that, if you stuck and need to stay competitive on time) ;)
SamuriHL
12th April 2011, 14:30
Fwiw I'm not a developer. I'm a user that's telling you a potential solution. What Nev does is up to him.
CruNcher
12th April 2011, 14:34
Good luck with that. There's nothing that I've seen that signify that it's an HD PVR recording. My advice to you is simple. Buy yourself a copy of VRD and run them through the stream fixer. You'll be doing yourself a huge favor.
sorry it was meant to be an answer for that part forget to quote and Bold
If i understand it right from everything i read Nevs Personal main goal is Blu-Ray .m2ts
though doesn't mean that others can't contribute with other preferences therefore it's open source :)
Though for other Devs to go in i guess it would be a good thing to post up in the Main thread which posted files are still problematic in some way to get some overview also based on the different container :)
SamuriHL
12th April 2011, 14:38
Like I said, I'm merely giving you an opinion based on my several year's experience as an HD pvr owner. In fact I have 2 of them. The streams they produce are flawed. Vrd fixes them. You can attempt to harass Nev further to deal with these files but I'm guessing that won't get very far.
CruNcher
12th April 2011, 14:48
As i said it would be helpfull if you could provide samples that show other problems then the unsync issue (as this is half fixed ;) )
nevcairiel
12th April 2011, 15:08
I'm having slightly incorrect/strange behaviour for HD-DVD sourced VC-1 23.976fps mkv files (well, they were kinda 60i on the disc...HD-DVD was messy in this regard)
Which decoder did you use?
ffdshow/MPC-HC internal fail on those files because they don't understand the pulldown flags in the files, so it plays them as 29.97 (also happens with the original HD-DVD content), but decoders like Cyberlink, ArcSoft or my own LAV CUVID play them just fine. (at least did the original EVO files, didn't have a MKV)
I do not have direct influence on what the FPS value is, i just report what ffmpeg detected, and yes, it mis-detects those files as well. For the same reason, i cannot detect if a file is really 29.97 or just wrongly detected 23.976, so i cannot dynamically turn the option on/off for these files.
Sadly, you'll have to live with it, but at least knowing that HD-DVD is a dead format and there won't be any new releases for it. :)
PS:
This is only happening because ffmpeg does not trust the values stored in the container, it has to go probe the stream and figure out whats in it. On really broken files this just has advantages, i guess, however on sanely muxed files, stuff like this happens - oh well, can't have it all.
nevcairiel
12th April 2011, 17:11
Re: File Source (Async) support
I talked about this before, but i would like to explain in detail what this means for the next LAV Splitter version.
I added support to LAV Splitter today for using a IAsyncReader to supply data to the demuxers. This means it can now connect to the "File Source (async)" filter, it does not have to open the file itself anymore.
This was added for multiple reasons, for one its much easier to work together with other splitters this way, especially the MS splitters, or the stand-alone MPC-HC splitters, and secondly, it also allows other streaming filters to supply data to LAV Splitter.
In the list of registered filters, you will now see two LAV Splitter instances, one "LAV Splitter Source", which is the "old" version of the filter, which acts like a Source filter, and a second, just plain "LAV Splitter", which is the filter that connects to the File Source (Async).
Now, why would you care, you ask?
The default mode changed. I changed the filter registration, so that by default, it always tries to go through the "File Source (Async)", except for BluRays.
To adjust to this change, you have quite some options.
- Adjust your external filter configs so that it prefers the "File Source (Async)" as a source filter, and add the "new" "LAV Splitter" filter to the preferred list as well (you can do this by just disabling all other source filters, of course)
- If you can control source filters by file extension (some players do that, not MPC-HC though), you can just keep using "LAV Splitter Source", it still works as before.
- You can use the installer (i got clsid's script, going to toy with it a bit and provide an installer for 0.23), which can manually assign "LAV Splitter Source" to be used for the selected extensions.
Another bonus side effect of this change is that LAV Splitter can now demux a whole lot of other formats without registry hacking. MPC-HC, for example, always trys to load the File Source (Async), for any file, and will always try to connect it to LAV Splitter - that means i can ask ffmpeg to probe and try to demux the file, and if its supported, it'll just start playing. Formats do not need to be registered manually anymore. I don't know which other players always insert the File Source as a backup filter, but heck, its a useful feature in MPC-HC. :)
Oh, another bonus feature, you should now be able to use it without registering it first in MPC-HC through the external filter list (again, except for BluRays)
In addition to these changes, i'll be implementing a new interface soon which will let you select which file formats it should be active for, so you have a fine-grained control over this from within the filter.
If you have any questions concerning this change, please just ask.
@Blight: This also fixes the MPEG-PS media type issue.
Mercury_22
12th April 2011, 18:42
LAVSplitter.ax x64 version Nevcairiel-LAVFSplitter-0.22-7-g011e934 won't register !!!
nevcairiel
12th April 2011, 19:01
LAVSplitter.ax x64 version Nevcairiel-LAVFSplitter-0.22-7-g011e934 won't register !!!
Fixed.
CruNcher
12th April 2011, 19:19
Re: File Source (Async) support
I talked about this before, but i would like to explain in detail what this means for the next LAV Splitter version.
I added support to LAV Splitter today for using a IAsyncReader to supply data to the demuxers. This means it can now connect to the "File Source (async)" filter, it does not have to open the file itself anymore.
This was added for multiple reasons, for one its much easier to work together with other splitters this way, especially the MS splitters, or the stand-alone MPC-HC splitters, and secondly, it also allows other streaming filters to supply data to LAV Splitter.
In the list of registered filters, you will now see two LAV Splitter instances, one "LAV Splitter Source", which is the "old" version of the filter, which acts like a Source filter, and a second, just plain "LAV Splitter", which is the filter that connects to the File Source (Async).
Now, why would you care, you ask?
The default mode changed. I changed the filter registration, so that by default, it always tries to go through the "File Source (Async)", except for BluRays.
To adjust to this change, you have quite some options.
- Adjust your external filter configs so that it prefers the "File Source (Async)" as a source filter, and add the "new" "LAV Splitter" filter to the preferred list as well (you can do this by just disabling all other source filters, of course)
- If you can control source filters by file extension (some players do that, not MPC-HC though), you can just keep using "LAV Splitter Source", it still works as before.
- You can use the installer (i got clsid's script, going to toy with it a bit and provide an installer for 0.23), which can manually assign "LAV Splitter Source" to be used for the selected extensions.
Another bonus side effect of this change is that LAV Splitter can now demux a whole lot of other formats without registry hacking. MPC-HC, for example, always trys to load the File Source (Async), for any file, and will always try to connect it to LAV Splitter - that means i can ask ffmpeg to probe and try to demux the file, and if its supported, it'll just start playing. Formats do not need to be registered manually anymore. I don't know which other players always insert the File Source as a backup filter, but heck, its a useful feature in MPC-HC. :)
Oh, another bonus feature, you should now be able to use it without registering it first in MPC-HC through the external filter list (again, except for BluRays)
In addition to these changes, i'll be implementing a new interface soon which will let you select which file formats it should be active for, so you have a fine-grained control over this from within the filter.
If you have any questions concerning this change, please just ask.
@Blight: This also fixes the MPEG-PS media type issue.
a dream in customizeability as used from MPC-HC main source selection and makes debugging also a hell lot more efficient as testing is already consuming time enough,really great work Nev if progress stays stable and more come over also from the MPC-HC splitter devs it would be awesome and hopefully in no time we would have a stable ffmpeg input for dshow where we can even exchange with them and improve :)
I hope it will work efficient in load/unload so that you wont need to close MPC-HC for the changes to become effective ?
Though this here is a good question http://forum.doom9.org/showthread.php?t=160560 and on which side is lav splitter going to sync with (non dshow specific improvements) ?
http://www.golem.de/1104/82702.html
Mark_A_W
12th April 2011, 23:31
Which decoder did you use?
ffdshow/MPC-HC internal fail on those files because they don't understand the pulldown flags in the files, so it plays them as 29.97 (also happens with the original HD-DVD content), but decoders like Cyberlink, ArcSoft or my own LAV CUVID play them just fine. (at least did the original EVO files, didn't have a MKV)
I do not have direct influence on what the FPS value is, i just report what ffmpeg detected, and yes, it mis-detects those files as well. For the same reason, i cannot detect if a file is really 29.97 or just wrongly detected 23.976, so i cannot dynamically turn the option on/off for these files.
Sadly, you'll have to live with it, but at least knowing that HD-DVD is a dead format and there won't be any new releases for it. :)
PS:
This is only happening because ffmpeg does not trust the values stored in the container, it has to go probe the stream and figure out whats in it. On really broken files this just has advantages, i guess, however on sanely muxed files, stuff like this happens - oh well, can't have it all.
I'm using ffdshow, but internally it is using wmv9.
Arcsoft gives me the 29/29 reporting, but plays at the correct speed - reclock yellow.
CUVID is for nvidia only isn't it?
Thanks.
Mark
SamuriHL
13th April 2011, 00:08
Nev, what happened to git?
git.exe submodule update --init
Submodule 'ffmpeg' (git://git.1f0.de/ffmpeg.git) registered for path 'ffmpeg'
Submodule 'libbluray' (git://git.1f0.de/libbluray.git) registered for path 'libbluray'
Cloning into ffmpeg...
fatal: reference is not a tree: fb7a95d7b12e965b14acbdb01c06261d91cb7a54
Unable to checkout 'fb7a95d7b12e965b14acbdb01c06261d91cb7a54' in submodule path 'ffmpeg'
I thought I broke something local and have pulled a clean branch but um, yea.
nevcairiel
13th April 2011, 06:28
I havent touched the ffmpeg thingys for a while, dunno why its acting up - will check later what happend.
Btw, you only need to do --init once after initial checkout, pure update should be good otherwise.
I'm using ffdshow, but internally it is using wmv9.
Arcsoft gives me the 29/29 reporting, but plays at the correct speed - reclock yellow.
The reporting is unimportant, its just hints for the initial connection, whats important is the actual frame rate of the movie going out after decoding, which ArcSoft seems to do fine.
Kurtnoise
13th April 2011, 13:08
Another bonus side effect of this change is that LAV Splitter can now demux a whole lot of other formats without registry hacking. MPC-HC, for example, always trys to load the File Source (Async), for any file, and will always try to connect it to LAV Splitter - that means i can ask ffmpeg to probe and try to demux the file, and if its supported, it'll just start playing. Formats do not need to be registered manually anymore. I don't know which other players always insert the File Source as a backup filter, but heck, its a useful feature in MPC-HC. :)
I tried to load several wtv files using your last commits but MPC-HC uses MS filters to split them. Is it because wtv files extension registers his own filters ?
Anyway, thanks for your work.
nevcairiel
13th April 2011, 13:09
.wtv has probably a special filter by MS. You'll need to change the extension configuration in the registry - the installer will be able to do this.
Note that i have not tested a single wtv with the splitter. hey, i haven't even seen such a file yet. :)
thuan
13th April 2011, 13:55
Might I ask do you intend to implement linked MKV file support. If so how urgent is it on your priority list?
nevcairiel
13th April 2011, 13:56
Might I ask do you intend to implement linked MKV file support. If so how urgent is it on your priority list?
Very low priority.
SamuriHL
13th April 2011, 14:08
I havent touched the ffmpeg thingys for a while, dunno why its acting up - will check later what happend.
Btw, you only need to do --init once after initial checkout, pure update should be good otherwise.
I don't know what's going on but I can't pull the ffmpeg code at ALL now. I keep getting the same error over and over again. I've completely wiped out my local dir and started over and get the same error. This sucks as I've been happily building for days now. Anyone have any ideas? Whenever I try to pull ffpmpeg, it just errors out completely.
nevcairiel
13th April 2011, 14:09
I'm going home in an hour, going to check it then.
SamuriHL
13th April 2011, 14:10
Thanks, Nev. Definitely appreciate it.
SamuriHL
13th April 2011, 14:31
Ok, I got it working again. I have NO IDEA HOW OR WHY, though. After all those stupid windows updates yesterday my machine's been very tempermental. Anyway, it seems all is well and I'm building again. Now to figure out my ffdshow problem. Stupid thing is prompting me for user creds when it gets to the boost part of the update. I can't win.
nevcairiel
13th April 2011, 14:54
It was actually my fault, my local ffmpeg didn't seem to match the one in the repository, fixed now.
Kurtnoise
13th April 2011, 14:55
@Nevcairiel : i'll give you some files asap if you want...
SamuriHL
13th April 2011, 14:57
It was actually my fault, my local ffmpeg didn't seem to match the one in the repository, fixed now.
Ah, ok. Thank you for fixing it. I was going nuts.
Plutotype
13th April 2011, 18:32
Hi Nev,
0.22/ 0.51 madVR.
If open a VC-1 video, pause it and then jump to 30th minute, 60 minute etc. , the pictured frames do not represent correct frame of the movie, but ..I dont know. The image gets corrupted too.
more here http://forum.doom9.org/showthread.php?p=1492038#post1492038
Thanks
Pluto
CruNcher
13th April 2011, 18:48
Plutotype frame accuracy is a complex thing don't expect that from ffmpeg for everything especially when using another Decoder, does it at least recovers correctly ? ;)
Plutotype
13th April 2011, 19:00
MPC-HC internal splitter does this job correctly, I think Nev will find out how to fix it.
Midzuki
13th April 2011, 19:00
@Plutotype:
That's normal :) , happens with MPC-HC's Mpeg Splitter as well
(on my PC at least, bien entendu).
And speaking of the libavcodec/ffmpeg bugs :devil:, their VC-1 decoder seems to misunderstand the pixel-aspect-ratio flags in non-standard resolutions / frame sizes -.-
nevcairiel
13th April 2011, 19:01
I'm really not too worried about some weird behaviour in pause mode, you're supposed to play it, not pause it. :)
This seems to be decoder specific, works fine with ffdshow - maybe the mpc decoder doesnt like getting a flush, or something.
Plutotype
13th April 2011, 19:35
Thanks guys, I found the cause for the issue - wmv9 decoder - switching to libavcodec in ffdshow resolved it. Does anybody know any cons of using livacodec instead of wmv9? Should I care?
nevcairiel
13th April 2011, 19:43
libavcodec cannot decode interlaced VC-1.
SamuriHL
14th April 2011, 01:00
I tried to load several wtv files using your last commits but MPC-HC uses MS filters to split them. Is it because wtv files extension registers his own filters ?
Anyway, thanks for your work.
I got this when I just tried a wtv file:
Media Type 0:
--------------------------
Unknown
AM_MEDIA_TYPE:
majortype: MEDIATYPE_MSTVCaption {B88B8A89-B049-4C80-ADCF-5898985E22C1}
subtype: MEDIASUBTYPE_DtvCcData {F52ADDAA-36F0-43F5-95EA-6D866484262A}
formattype: FORMAT_None {0F6417D6-C318-11D0-A43F-00A0C9223196}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 0
EDIT: Media Info for the file:
Format : MPEG Video
Format version : Version 2
File size : 6.67 GiB
Duration : 367ms
Overall bit rate : 156160680806
Video
Format : MPEG Video
Format version : Version 2
Format profile : Main@High
Format settings, BVOP : Yes
Format settings, Matrix : Default
Duration : 367ms
Bit rate mode : Variable
Bit rate : 38.8 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Interlaced
Scan order : Top Field First
Bits/(Pixel*Frame) : 0.625
Stream size : 1.70 MiB (0%)
But yea, LAVF Splitter isn't in the chain that MPC-HC comes up with at all. In my case they're MPEG2 HD tv recordings. WTV is an ANNOYING format, Nev. It took the VRD guys months to get their support written for it.
jmone
14th April 2011, 02:59
libavcodec cannot decode interlaced VC-1.
OT - Do you know if there are any plans to add interlaced VC-1 support to libavcodec?
Midzuki
14th April 2011, 03:24
Does anybody know any cons of using livacodec instead of wmv9? Should I care?
Well, the M$ DMO Decoder for VC-1 really is ASF-centric and "VfW-biased", so that you may experience some "B-frame decoding lag" by using it... :confused: Also, if you create VC-1 elementary streams through AVS2ASF, or through MainConcept Reference, these files will be properly decompressed by the Dmo DLL IF you remux them in a (m2)ts container --- otherwise, if you remux them into MKV, AVI, or even ASF, the Dmo decoder will show you only a sequence of black frames :eek:
++++++
OVERDUE UPDATE
After some additional tests, I've concluded the DMO decoder is just very-picky :mad: about the way the VC-1 stream was muxed into the container :angry:
nevcairiel
14th April 2011, 06:58
OT - Do you know if there are any plans to add interlaced VC-1 support to libavcodec?
I think there is a GSoC project for it, we'll see how that turns out.
Man i wish i was still a student, getting a ffmpeg GSoC project and being paid by google for it ... hooray. Oh well, that time has long since past.
But yea, LAVF Splitter isn't in the chain that MPC-HC comes up with at all. In my case they're MPEG2 HD tv recordings. WTV is an ANNOYING format, Nev. It took the VRD guys months to get their support written for it.
ffmpeg supports it (how good is anohter question), and if you want to play a file outside of the usual MS player tools, it might potentially even work better then their own splitter.
If you guys could supply some .wtv samples, i could run some tests on that.
Kurtnoise
14th April 2011, 08:30
If you guys could supply some .wtv samples, i could run some tests on that.
http://kurtnoise.free.fr/samples/
This file contains H264+EAC3 streams...more samples later.
The splitter works well inside GraphStudio/GraphEdit within those files.
robpdotcom
14th April 2011, 09:38
Here's a 1080i MPEG-2 wtv file.
http://www.megaupload.com/?d=RK1TUVDX
jmone
14th April 2011, 11:47
Anyone having issues with audio slowly drifting out of syn on BD playback? After about an hour I did a pause/play cycle but no joy. A short RWD however brought it back into sync.
nevcairiel
14th April 2011, 12:01
The splitter should always output the same timestamps, no matter if you seek back and forth or just watch it from the start - if the time is drifting, it must be some other component doing weird things.
The audio decoder however might drift if for some reason a audio frame could not be decoded properly, or for some other reason the continous audio stream is interrupted. Sadly its hard to reproduce, but i'll keep an eye out, and maybe sync timestamps more often.
If anything, i will add logging to see what the hell is going on.
One thing is to note, however. When i sync timestamps, i do break the continous PCM stream, which is otherwise 100% complete and has no holes. Now that you mention it, the Jitter correction that i removed a while ago didn't actually correct jitter - it resynced timestamps, making sure they stay in check - this would sometimes show as jitter to the renderers, but it isn't - its there to keep A/V sync in check.
jmone
14th April 2011, 12:21
FYI - the disc was Galxay Quest (no jokes please) - AVC1, TrueHD using LAVSplitter, FFDSHOW (ffmpeg-mt h264) for Video, LAVAudio for Audio, madVR and Reclock as the renderers.
Edit -
Player was JRiver MC.
I did not see any dropped frames or visual issues just a gradual loss of audio sycn.
Please Let me know if there is any further info or any test you would like me to do.
Skinleech
14th April 2011, 12:28
Apologies if this has been asked before, it probably has and I missed it. Does LAV splitter need to be used in order for LAV audio to be called?
I use DVB Viewer to capture Freeview HD stream heare in the UK which use AAC LATM LOAS for the audio. The MS DTV decoder seems pretty crappy as it's currently dropping the live audio (recorded content is fine on playback with LAV though) probably at the points where the soundtrack switches from 5.1 to 2.0 or vice versa. I've not had much luck with other AAC decoders, so wanted to try LAV which is working perfectly for pre-recorded streams. However, setting it up in DVB doesn't work, it just uses the System default which is the MS DTV codec.
Also, I can easily provide some 1440x1080i/25 h.264 with AAC wtv samples if they're required.
Thanks!
nevcairiel
14th April 2011, 12:37
I use DVB Viewer to capture Freeview HD stream heare in the UK which use AAC LATM LOAS for the audio. The MS DTV decoder seems pretty crappy as it's currently dropping the live audio (recorded content is fine on playback with LAV though) probably at the points where the soundtrack switches from 5.1 to 2.0 or vice versa. I've not had much luck with other AAC decoders, so wanted to try LAV which is working perfectly for pre-recorded streams. However, setting it up in DVB doesn't work, it just uses the System default which is the MS DTV codec.
It should work with other sources, however there are some limitations that usually apply to DVB sources. For one, DVB source filters sometime output MEDIATYPE_MPEG2_PES instead of MEDIATYPE_Audio, and this mode is not currently supported by LAV Audio.
I just recently got me a DVB-T/DVB-C USB doohickey, and i'll test with that in due time, and allow it to be used with DVB content.
FYI - the disc was Galxay Quest (no jokes please) - AVC1, TrueHD using LAVSplitter, FFDSHOW (ffmpeg-mt h264) for Video, LAVAudio for Audio, madVR and Reclock as the renderers.
I added some code that'll try to resync timestamps after a decoding fluke, and added logging when it detects sync offsets over 10ms (pretty drastic logging, the old code only acted on 100ms offsets).
I will also add some things that make redirecting logs into a file much easier for you guys to use.
jmone
14th April 2011, 12:46
Thanks - when the updated version is out I'll re-run on the same system and report back.
Skinleech
14th April 2011, 13:17
It should work with other sources, however there are some limitations that usually apply to DVB sources. For one, DVB source filters sometime output MEDIATYPE_MPEG2_PES instead of MEDIATYPE_Audio, and this mode is not currently supported by LAV Audio.
I just recently got me a DVB-T/DVB-C USB doohickey, and i'll test with that in due time, and allow it to be used with DVB content.
Awesome, thank you. I don't tend to watch the streams live, but it's pretty annoying when they cut out.
SamuriHL
14th April 2011, 13:55
ffmpeg supports it (how good is anohter question), and if you want to play a file outside of the usual MS player tools, it might potentially even work better then their own splitter.
If you guys could supply some .wtv samples, i could run some tests on that.
That would rock. If you need another sample, let me know. Mine's 1080i mpeg2/ac3.
nevcairiel
14th April 2011, 15:43
Thanks - when the updated version is out I'll re-run on the same system and report back.
I think i figured it out. It actually happened because TrueHD has so small samples (for the 48kHz file i had, 40 samples in one audio frame, thats 0.833333ms (going on periodically)).
Due to that periodic number, i couldn't accurately store those numbers in an integer, so eventually the error would sum up, and the value would slowly drift apart, one millisecond at a time.
Now, i changed it to store those numbers in a double precision floating point - which reduces integer precision from 64-bit to 52-bit (still big enough for around ~20 years of timestamps), but gives me the ability to store a timestamp like 0.8333ms much more accurately.
Dogway
14th April 2011, 16:37
Will you add support for asf,wmv3 or real media?
I also had problems with files with chapters like .mkv or .asf. There was sound but image was black. Maybe is this (http://forum.doom9.org/showthread.php?p=1463711#post1463711)?
I also had a problem with a .mov file (not the uploaded one), there's a point where I can't playback further. Graphstudio had problems too, x264 too (I couldn't encode the whole video), funny thing is I installed itunes and quicktime had no problems with it.
Midzuki
14th April 2011, 17:10
Will you add support for asf,wmv3 or real media?
Good questions. :) RealMedia should not be difficult (source-code from Gabest). FYI, ".ASF = .WMV" ;) (too bad the M$ marketers don't want to know the difference between codecs and containers), and ready-made source-code for that is available as well ( http://www.gdcl.co.uk/ ). As long as the splitter allows us to open Xvid-in-ASF :) and VP6-in-RMVB :D , it will have my official approval. :rolleyes: :p
Dogway
14th April 2011, 18:11
FYI, ".ASF = .WMV"
I meant wmv3 (http://en.wikipedia.org/wiki/VC-1), the codec. .asf is a container.
nevcairiel
14th April 2011, 18:16
Both WMV3 and ASF should be supported, to some extend.
To get .asf working, you need to manually hook it up, though.
Dogway
14th April 2011, 18:25
So these 2 should work?
3Mb each
http://www.mediafire.com/?drcnjcv1johy99f
http://www.mediafire.com/?kro2dqwee1kj0aw
Its wmv1, but well any wmv except wvc1
edit: manual hook=merit?
nevcairiel
14th April 2011, 18:39
These work just fine. The next version will have an installer that'll let you directly open them without manual registry editing.
I also tested some of the wtv samples, and they seem to play just perfectly - after i managed to disable the original MS source filter. :)
jmone
14th April 2011, 22:06
I think i figured it out. It actually happened because TrueHD has so small samples (for the 48kHz file i had, 40 samples in one audio frame, thats 0.833333ms (going on periodically)).
Due to that periodic number, i couldn't accurately store those numbers in an integer, so eventually the error would sum up, and the value would slowly drift apart, one millisecond at a time.
Now, i changed it to store those numbers in a double precision floating point - which reduces integer precision from 64-bit to 52-bit (still big enough for around ~20 years of timestamps), but gives me the ability to store a timestamp like 0.8333ms much more accurately.
Thanks! I'll test in the next public build release and report back. Appart from that the playback looked and sounded terrific.
yesgrey
14th April 2011, 22:27
I decided to join the crowd and installed LAV Splitter v0.22. :)
I've been testing LAV CUVID with madVR and noticed a strange thing. With a 1080i 60/1.001 fps file (music concert), the LAV splitter says the source is a 59.92fps, and madVR reports that the source filter says it's 59.917fps. That's not correct. 60/1.001 is ~59.940.
I've tested the file with eac3to and it correctly reports the file as 60/1.001. Tested with Haali splitter it says is a 29.97 fps file (the usual error of halving the interlaced frame rates).
It's the "Mettalica - Français pour une nuit" Blu-ray. If you need a sample let me know.
nevcairiel
15th April 2011, 06:35
The framerate in the media type is not important, its just a hint for the filters what to expect - the real fps is only defined through the timestamps of the actual frames.
What kind of container was this? On some containers (most notable mkv), ffmpeg doesn't trust the container defined framerate, and starts reading frames to "guess" the framerate. Sadly it usually doesn't read enough frames to get an accurate framerate (if the container timestamps are not of high enough precision, like MKV), so this happens.
Its really nothing to worry about.
The only place this would be used would be refresh rate switching, and i hope any tool that does that would be smart enough to switch to 59.940 when it sees 59.917. :)
madshi
15th April 2011, 06:56
The only place this would be used would be refresh rate switching, and i hope any tool that does that would be smart enough to switch to 59.940 when it sees 59.917. :)
What happens if the deviation is to the up-side and not the down-side? 59.940 - 59.917 = 0.027 deviation. 59.940 + 0.027 = 59.967. That's almost exactly in the middle between 59.940 and 60.000. How's an automatic refresh rate switcher expected to know whether to switch to 59.940 or 60.000Hz in that case?
nevcairiel
15th April 2011, 07:01
Make an educated guess and prefer 59.94, i would say. Its really more common then actual 60.0 fps movies.
But yeah, its not optimal - there was some talk on the ffmpeg list about the whole problem (it even used to misdetect 23.976 as 24.000 at some point), but the discussion somehow died when the whole fork etc happend. Maybe i can find and bump it.
But thats not the only problem a refresh rate switcher faces. What happens if i tell you its 59.94, but in fact, its telecined and ends up being 23.976 in the end? Or even 50i -> 25p for PAL FILM content, even without telecine.
Edit:
I guess 50i->25p isn't too bad, using 50Hz works for both - doh. :)
madshi
15th April 2011, 07:29
Make an educated guess and prefer 59.94, i would say. Its really more common then actual 60.0 fps movies.
Yeah, but what if the deviation is even bigger than in yesgrey's case and the guessed number gets very near to 60.000? Then an automatic refresh rate changer would most definitely switch to 60.000. If it wouldn't do that there would be bug reports by users who have true 60.000 content.
But thats not the only problem a refresh rate switcher faces. What happens if i tell you its 59.94, but in fact, its telecined and ends up being 23.976 in the end?
Yeah, a good refresh rate switcher should constantly check the framerate and adjust itself accordingly. However, that's only possible once playback has started. The refresh rate changer needs to start with the best guessed refresh rate right at the start. So it's kind of important that the media type information is accurate. Otherwise a stupid refresh rate changer would run the whole movie with a wrong refresh rate. A clever refresh rate changer would have to switch to the correct refresh rate after a couple of seconds of playback. The latter solution isn't too bad, but it's still not nice for users.
yesgrey
15th April 2011, 09:47
What kind of container was this?
It's mkv.
Thanks for the explanation. So, it's not exactly a bug with LAV Splitter.
The interesting thing is this is the only file where this happens. I have a bunch of others that are OK. Well, to be honest, I think they might not be OK too, because they're reported as 29.97, when in reality it should be 59.94 due to being interlaced sources. Do you know why this happens?
nevcairiel
15th April 2011, 09:55
It's mkv.
Yeah figures. MKV (by default) only has millisecond precision for timestamps, which is the root cause for all these issues.
60fps is 16.66667ms per frame, 59.94 is 16.683333ms.
Timestamps probably look something like this:
0, 17, 33, 50, 67, 83, 100, ...
From this short sequence, the average time per frame is 16,6ms (60,24fps)
I'll leave it as an excercise for the reader to determine how many frames will have to be read to calculate a 100% accurate framerate.
Currently its reading 30 frames, which gives us 16,68965ms average time per frame, which is 59,91735fps
If it would be reading 31 frames, we would actually end up at 60fps exactly. *Vastly* increasing the number is no good either, as it would take much longer to open the file then.
It would probably be smarter if ffmpeg would just trust the container defined framerate -- i'll try to find the thread on the mailing list and inquire on any status update.
Edit:
I found the old thread, and there is some code that marks the timebase of H264 streams as unreliable for some reason, sadly it was never fully explained why. I have some files myself that probably show this problem, going to turn that unreliable check off (which should make it trust the container headers or the H264 headers) and see what happens.
yesgrey
15th April 2011, 10:24
MKV (by default) only has millisecond precision for timestamps, which is the root cause for all these issues.
60fps is 16.66667ms per frame, 59.94 is 16.683333ms.
Timestamps probably look something like this:
0, 17, 33, 50, 67, 83, 100, ...
So, I presume that the video renderers should not rely on the file timestamps, right? Or then the rendering might end up flawed...
I have some files myself that probably show this problem, going to turn that unreliable check off (which should make it trust the container headers or the H264 headers) and see what happens.
Thanks for taking the time to look into this.
nevcairiel
15th April 2011, 10:37
So, I presume that the video renderers should not rely on the file timestamps, right? Or then the rendering might end up flawed...
Right. For perfect rendering, it would probably have to smooth out the timestamps, of if its rendering into vsyncs anyway, that problem probably solves itself. madshi can probably answer that much better.
Here is a quick debugging output which perfectly shows the problem (MKV, H264 23.976 file)
DirectShow uses 100ns granularity for timestamps, yet the frame duration is always rounded to 41ms (ideally, it would be 41.7083).
To keep A/V sync, there are actually small "gaps" of 1ms between every other frame.
LAVSplitter.ax(tid d6c) 2733 : Packet: rtStart: 0; rtStop: 410000; duration: 410000; diff-to-prev: 0
LAVSplitter.ax(tid d6c) 2739 : Packet: rtStart: 420000; rtStop: 830000; duration: 410000; diff-to-prev: 420000
LAVSplitter.ax(tid d6c) 2764 : Packet: rtStart: 830000; rtStop: 1240000; duration: 410000; diff-to-prev: 410000
LAVSplitter.ax(tid d6c) 2764 : Packet: rtStart: 1250000; rtStop: 1660000; duration: 410000; diff-to-prev: 420000
LAVSplitter.ax(tid d6c) 2765 : Packet: rtStart: 1670000; rtStop: 2080000; duration: 410000; diff-to-prev: 420000
LAVSplitter.ax(tid d6c) 2766 : Packet: rtStart: 2090000; rtStop: 2500000; duration: 410000; diff-to-prev: 420000
LAVSplitter.ax(tid d6c) 2766 : Packet: rtStart: 2500000; rtStop: 2910000; duration: 410000; diff-to-prev: 410000
LAVSplitter.ax(tid d6c) 2771 : Packet: rtStart: 2920000; rtStop: 3330000; duration: 410000; diff-to-prev: 420000
LAVSplitter.ax(tid d6c) 2771 : Packet: rtStart: 3340000; rtStop: 3750000; duration: 410000; diff-to-prev: 420000
LAVSplitter.ax(tid d6c) 2771 : Packet: rtStart: 3750000; rtStop: 4160000; duration: 410000; diff-to-prev: 410000
LAVSplitter.ax(tid d6c) 2813 : Packet: rtStart: 4170000; rtStop: 4580000; duration: 410000; diff-to-prev: 420000
LAVSplitter.ax(tid d6c) 2813 : Packet: rtStart: 4590000; rtStop: 5000000; duration: 410000; diff-to-prev: 420000
LAVSplitter.ax(tid d6c) 2814 : Packet: rtStart: 5000000; rtStop: 5410000; duration: 410000; diff-to-prev: 410000
LAVSplitter.ax(tid d6c) 2814 : Packet: rtStart: 5420000; rtStop: 5830000; duration: 410000; diff-to-prev: 420000
LAVSplitter.ax(tid d6c) 2815 : Packet: rtStart: 5840000; rtStop: 6250000; duration: 410000; diff-to-prev: 420000
The "best" matchign results i've seen are MPEG-TS actually, were frame durations for 23.976 are typically 41.7111ms (23.974 fps), pretty close to the real deal (of course occasionally a frame comes along that is shorter then that to fix sync)
Again, its most likely limited by the MPEG-TS timebase of 1/90000.
I believe you *can* increase the granularity of timestamps in MKV, but apparently not many files are like that.
You're file was actually H264, yes?
I already have some code to fix up H264 23.976 wrongly detected as 24.000, could easily extend it to do the same for 59.94 detected as 60.
madshi
15th April 2011, 10:48
Right. For perfect rendering, it would probably have to smooth out the timestamps, of if its rendering into vsyncs anyway, that problem probably solves itself. madshi can probably answer that much better.
Yeah, as you say, a (good) renderer matches frames to vsyncs. And vsyncs are much wider apart than the small inaccurateness in MKV timestamps. So usually not really a problem for a renderer.
yesgrey
15th April 2011, 11:36
I'll leave it as an excercise for the reader to determine how many frames will have to be read to calculate a 100% accurate framerate.
I decided to take the challenge. :)
I wrote a small matlab program and the results were pretty interesting...
For all integer frame rates (24, 30, 60) we need to read a number of frames that's a multiple of 3, and we get a 100% exact frame rate.
For all non-integer frame rates (24.0/1.001, 30.0/1.001, 60.0/1.001) we need to read a number of frames equal to the frame rate rounded to the nearest integer. To the rates above we would need to read 24, 30 and 60, respectively. This will not give a 100% exact frame rate, but I guess we could live with an error < 1.0e-13. ;)
So, considering that 24, 30 and 60 are multiples of 3, a way of solving this would be always reading 24, 30 and 60 frames, calculate the three possible frame rates, and then select the one which value would be close to the number of readings.
Let's see an example for a 60/1.001 fps file:
Exact frame rate: 59.9400599400599
The 24 readings frame rate would be: 60.0
The 30 readings frame rate would be: 60.0
The 60 readings frame rate would be: 59.9400599400599
60.0 is much higher than 24 and 30, so the accurate one would be the 60 readings one.
Even better, considering that 60 is a multiple of 30, we could simply go with 2 readings, 24 and 60. Then, we would go always with the 60 readings value except for values close to 24. I think this might be pretty simple to implement.
Edit:
All the above is without reading the first frame, whose time stamp is 0ms. If we include the reading of the first frame then we should make 25 and 61 readings, and compare the results with (25-1) and (61-1).
I forgot to include 25 and 50 frame rates. For these ones 1 reading (2, if we include the first frame reading), or any multiple of 1, are enough, so the above method should work too, it's just using the 60 readings value.
nevcairiel
15th April 2011, 12:35
Reading 60 frames does not actually hurt 23.976 content, or does it?
Note that the fps guessing code will adapt the framerate to one of the standard rates (24,25,30,50,60, and the same /1.001) when it finds one very close to that, so minor errors are ok.
I knew that 24 frames was the sweet spot, it was mentioned in the ffmpeg list some time back. Reading 60 frames does not sound too bad, i guess i could even increase the parsing to that amount, but since there is no frame rate information at the point where that code is executed, i cannot make it conditional.
I double checked the code, and right now its 20 frames "normally", and double that amount for coarse timebases, like MKV. I can easily just make that triple instead of double.
Going to play with that tonight.
Oh the other problem, with interlaced files being detected as 29.97 - i cannot comment with any certainty.
What codec is in those files? Only H264 and MPEG2 currently do timestamp guessing (I'm unsure what makes them so special), all other codecs rely on the container defined frame rate, and the container may have them as 29.97 - you could check with Mediainfo or some MKV header editor to check that.
yesgrey
15th April 2011, 12:41
I've just edited my previous post. It wasn't entirely correct. Please take a look into it.
yesgrey
15th April 2011, 13:02
Reading 60 frames does not actually hurt 23.976 content, or does it?
If you would use only the 60 readings it might.
My suggestion is to do always two readings: 25 and 61.
And to use always the 61 readings value except when it's close to 24. Like this:
GetFPSReadings(fpsRead25)
GetFPSReadings(fpsRead61)
fpsFile = fpsRead61
if (abs(fpsFile-24.0) < 0.1) fpsFile = fpsRead25
I knew that 24 frames was the sweet spot, it was mentioned in the ffmpeg list some time back.
It isn't. It's good only for 24 and 24/1.001 sources.
but since there is no frame rate information at the point where that code is executed, i cannot make it conditional.
You don't need any frame rate information. See above my code suggestion.
I double checked the code, and right now its 20 frames "normally", and double that amount for coarse timebases, like MKV. I can easily just make that triple instead of double.
That won't work. It has to be 25 and 61. Other values the errors are too big, and if we can get 100% why go with less? ;)
What codec is in those files? Only H264 and MPEG2 currently do timestamp guessing (I'm unsure what makes them so special), all other codecs rely on the container defined frame rate, and the container may have them as 29.97 - you could check with Mediainfo or some MKV header editor to check that.
Two of the files are WVC1 and the other is AVC. So the WVC1 are explained but the AVC one isn't...
The AVC one is "Metallica - Orgullo Pasion y Gloria" Blu-ray.
OK, I admit, I'm a Metallica fan. :D
nevcairiel
15th April 2011, 13:30
It isn't. It's good only for 24 and 24/1.001 sources.
Yeah, i meant sweet spot for the 24/23,976 distinction.
That won't work. It has to be 25 and 61. Other values the errors are too big, and if we can get 100% why go with less? ;)
It does actually read the duration of 60 frames, not the timestamps, so it has 60 data points to compare.
The problem with the code is that its not mine, but ffmpegs. Now i have no problem applying a custom patch to my builds, but the way the code works, i cannot simply do as you suggests (and i would prefer to keep the changes small and simple for future upgradability)
I can try to outline how it works right now (as good as i understand it), in pseudo code
while #frames < maximum
get duration of frame
for all standard framerates: (1-60, 23.976, 29.970, 59.940)
get framerate (scaled * 1001 * 12, for 59.94 = 720000)
calculate ticks (duration * framerate / (1001 * 12))
calculate error (duration - round(ticks) * (1001*12) / framerate)
sum error^2 per fps
end
end
best_error = INT_MAX
for all standard framerates:
if error < best_error
best_error = error
best_fps = fps
end
end
Oh, what is to note is that the standard fps actually include more then just the integer entrys - they include 12 values for every integer, so thats where your FPS comes from, the value for 59 + 11/12 just fits better then 59.940 after 40 frames. If we can get it close enough to the real value, it'll be a perfect match, we don't have to get it to match 100% - it'll do that afterwards by itself.
Some quick tests show that reading 60 frames will not break 23.976, 23.976 will still be the closest match (the calculated frame rate would be 23.980, surrounding possible values are 23.9167 (23+11/12), 23.976, 24.000)
Like i said before, it just needs to have the least error to the correct FPS, and then it'll use the 100% correct one - it doesn't have to calculate the 100% correct framerate - so, reading 60 frames will give us the correct result in any case, and while reading those frames potentially slows down opening of the file (minimally), they are actually internally buffered and then send to me once i start requesting frames.
nevcairiel
15th April 2011, 16:51
I looked into it some, and it looks like it won't be easy to do it perfectly. I even rewrote it completely one time, which then caused it to work on some files, but broke on others that had screwed up timestamps in the first 2 frames.
I'll just disable the whole guessing logic for H264 and go with the container or header specified frame rate. This does however mean that it'll show 29.970. Technically, this would even be correct, since its the frame rate, not the field rate. :P
If a deinterlacer combines that back to 60 full progressive frames, it should indicate as such in the media type - thats not the source filters job.
In any case, 29.97 does perfectly fit into 59.94, so a refresh rate changer shouldn't have problems either. (Is there any reason to set the screen to 29.97, rather then 59.94?)
I'll also write to the ffmpeg list and see if they have some smart idea. I found some sample that can easily be used to demo the behaviour.
madshi
15th April 2011, 17:05
I don't expect problems with 29.970. I don't even know if there's any display that supports such a refresh rate. A refresh rate changer should treat 29.970 as 59.940, IMHO. So all should be fine with 29.970.
SamuriHL
15th April 2011, 17:43
Ok, well, since we (and by that I mean Nev and madshi! :D) got things working so well, I figure now would be a good time to throw out a nice challenge for you. :D I use MakeMKV to backup my movies to MKV format so I can play them with MPC-HC/LAVF Splitter/ffdshow(audio bitstreaming only)/a Video decoder (LAVF CUVID or Cyberlink HAM)/madVR. What an amazing environment and absolutely awesome playback capability! Now for the challenge. Subtitles from HD DVD in an MKV no workie. They claim to be DVD vobsub subtitles (codec id: S_VOBSUB). However, when I enable the subtitle track I don't see any subs being displayed. On a DVD converted to MKV using MakeMKV, I am able to turn on the subtitles and it works fine. So clearly there's something unique about HD DVD's version of subtitles that's causing it to not work. madshi/Nev....any ideas? :)
nevcairiel
15th April 2011, 17:59
I think HD DVD uses extended vob subs (with 8-bit colors, in contrast to the 4-bit for DVD vob subs), maybe those are just not supported by the different vob renderers. Do they work from the .evo files?
SamuriHL
15th April 2011, 18:04
They aren't even DETECTED in the EVO files. :)
nevcairiel
15th April 2011, 18:07
I have some .evo sample files, and LAV Splitter shows the streams just fine in there, but they dont show any subs. I blame the subtitle renderer, not the splitter or anything.
yesgrey
15th April 2011, 18:09
It does actually read the duration of 60 frames, not the timestamps, so it has 60 data points to compare.
OK. So my original logic is valid.
The problem with the code is that its not mine, but ffmpegs. Now i have no problem applying a custom patch to my builds, but the way the code works, i cannot simply do as you suggests
Why not proposing a change to ffmpeg? The way I suggest seems much simpler and more error proof...
I can try to outline how it works right now (as good as i understand it), in pseudo code
Can you point me directly to the code? File and function names?
It seems to be much more complicated than needed...
If we can get it close enough to the real value, it'll be a perfect match, we don't have to get it to match 100% - it'll do that afterwards by itself.
The only problem I can see is what is considered close enough?
SamuriHL
15th April 2011, 18:09
That's what I mean. No subs show up in the filter list when playing an EVO. This blows cause I still have a BUNCH of HD DVD's that I don't necessarily want to repurchase. I was hoping converting them to HD DVD would allow me to be done with it. But I do need subs on a couple of them. And since it's a dead format, I'm guessing none of the subtitle developers want to even bother with this. Converting them to actual vobsub has little appeal. I just want to rip them to MKV and call it good. Guess that's not going to happen.
nevcairiel
15th April 2011, 18:15
Why not proposing a change to ffmpeg? The way I suggest seems much simpler and more error proof...
I actually had one file that had its first frame having a double duration, which totally threw the algorithm off, and caused it to end up with a framerate of 23.8-something
If there is some overall good solution, proposing it to ffmpeg is of course the ultimate goal - however they are usually careful with completly rewriting such parts.
Can you point me directly to the code? File and function names?
It seems to be much more complicated than needed...
libavformat/utils.c, av_find_stream_info
The relevant code starts at around line 2300 and is spread all over the place until line 2466 or so.
tb_unreliable() is true for H264, which causes the whole code to activate.
Line numbers from here;
http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavformat/utils.c;h=1919f61d6aec0dd9758292b51b6fd448e51d1477;hb=HEAD
It does seem overly complicated, also buggy in some places, but i also have much more to do and cannot fix every bug in ffmpeg. I just trust the container provided values now (turned the unreliable check off)
nevcairiel
15th April 2011, 18:16
No subs show up in the filter list when playing an EVO..
What i mean is, they show up in the list, but i don't get any subs on screen, which means the renderer just doesn't like them.
SamuriHL
15th April 2011, 18:20
What i mean is, they show up in the list, but i don't get any subs on screen, which means the renderer just doesn't like them.
For the one disc I'm trying to do right now (Serenity) if I play the EVO file no subs show up in the list. The sub is shown in the list for my MKV, but, no subs ever show up. In either case, it's irrelevant if the sub renderer won't play them. :(
yesgrey
15th April 2011, 18:25
I guess my reply was a bit late...
I looked into it some, and it looks like it won't be easy to do it perfectly. I even rewrote it completely one time, which then caused it to work on some files, but broke on others that had screwed up timestamps in the first 2 frames.
You can always use an offset and ignore some of the first frames, and start counting only after that. Unless all timestamps are screwed it should work, but I see that it might be a problem too, because if any of the timestamps are bad the logic fails, since it assumes that all the timestamps are valid...
I'll just disable the whole guessing logic for H264 and go with the container or header specified frame rate.
That's not a bad solution.
Technically, this would even be correct, since its the frame rate, not the field rate. :P
I don't agree with this. Technically that would be wrong, because the frame rate of a 59.94 interlaced source is 59.94 fps, and not 29.97. The field/frame distinction is not only related with lines positioning, but also with time. If what you call as two consecutive fields were captured at different time positions, then I won't call them fields but frames. Of course it would be frames with half the resolution of a progressive frame, but they will be frames. For me, it only makes sense talking about fields when they were captured at the same time position.
I'll also write to the ffmpeg list and see if they have some smart idea. I found some sample that can easily be used to demo the behaviour.
If you need the matlab code I wrote let me know.
yesgrey
15th April 2011, 18:32
It does seem overly complicated, also buggy in some places, but i also have much more to do and cannot fix every bug in ffmpeg.
Agreed, but if it would be something simple it won't hurt too much... you can propose and then let them decide for themselves. ;)
But I do need subs on a couple of them.
Have you tried looking for the subs in forums that contain subs for a lot of movies? You can then remux your HDDVDs with those files.
tetsuo55
15th April 2011, 18:32
Samurai/Nev: Is the subtitle renderer connecting at all?
I remember something about the actual subtitle overlay surface being limited to a very low bitdepth, it could be that the surface isnt accepting the 8bit images.
Does it work with haali or gabest filters? Same question for the subtitles muxed into MKV?
If it doesn't work with the other solutions either fixing it in the subtitle renderer might be fairly easy, its just images after all. And if its a bitdepth problem Janwillem might be able to fix that.
SamuriHL
15th April 2011, 18:36
Just another FYI, Nev. VC-1 from an HD DVD in an MKV is a real pain in the ass. The pulldown flags don't get removed in MakeMKV, so, it causes the decoder problems. In my case I'm using Cyberlink HAM mode and it's able to handle it. ffdshow with either wmr9 or libavcodec gets out of sync almost immediately cause it's not detecting the proper FPS. (It thinks it's 29.whatever meaning it believes it's 60fps whereas the content is really 23.976). The Cyberlink decoder seems to handle that quite nicely. ffdshow not so much. I was only testing ffdshow to see if its sub renderer could handle the HD DVD subs. It can't. No surprise, just doing my due diligence. In any case I really wish there was an easy, quick way to take the stupid MKV's and remove the pulldown so they show up as 23.976 like they're supposed to. I haven't tried LAVF CUVID to see how it handles this situation yet. ;)
SamuriHL
15th April 2011, 18:37
Have you tried looking for the subs in forums that contain subs for a lot of movies? You can then remux your HDDVDs with those files.
If I wanted to remux manually, I could convert the subs myself. I'm trying to avoid that. I will if I have to, but, what a pain.
SamuriHL
15th April 2011, 18:40
Samurai/Nev: Is the subtitle renderer connecting at all?
I remember something about the actual subtitle overlay surface being limited to a very low bitdepth, it could be that the surface isnt accepting the 8bit images.
Does it work with haali or gabest filters? Same question for the subtitles muxed into MKV?
If it doesn't work with the other solutions either fixing it in the subtitle renderer might be fairly easy, its just images after all. And if its a bitdepth problem Janwillem might be able to fix that.
Gabest filters don't work with it, either. I just now tried that. I don't know how to tell if it's connecting to the sub renderer? Sorry, I'm still learning about a lot of this stuff. If you can tell me how to check that I'll take a look. Thanks!
yesgrey
15th April 2011, 18:42
You can always use an offset and ignore some of the first frames, and start counting only after that. Unless all timestamps are screwed it should work, but I see that it might be a problem too, because if any of the timestamps are bad the logic fails, since it assumes that all the timestamps are valid...
From a quick look into the code ffmpeg seems to be using the offset idea (line 2394), so it seems they would need to use only 24+offset and 60+offset readings. Currently it uses an offset of 4.
madshi
15th April 2011, 18:50
I actually had one file that had its first frame having a double duration, which totally threw the algorithm off, and caused it to end up with a framerate of 23.8-something
IMHO the best solution is to simply trust the container. Of course there are broken files out there, but that's not your fault, so it's also not your problem. If all else fails, you could offer an option somewhere to alternatively overwrite the container framerate with a "guessed" framerate by looking at the timestamps. But IMHO the default should be to trust the container information. If users complain, just tell them: "Your file is broken". Just my 2 cents, of course...
P.S: There are MKV files without any framerate information, though. For those I'd use the current timestamp guessing.
I don't agree with this. Technically that would be wrong, because the frame rate of a 59.94 interlaced source is 59.94 fps, and not 29.97. The field/frame distinction is not only related with lines positioning, but also with time. If what you call as two consecutive fields were captured at different time positions, then I won't call them fields but frames. Of course it would be frames with half the resolution of a progressive frame, but they will be frames. For me, it only makes sense talking about fields when they were captured at the same time position.
IIRC, the h264 video specification always uses a "field rate". For interlaced content that's 59.940. For progressive Blu-Rays it's 47.952. I understand your wish to handle native video content differently to native movie content. But that's not how h264 works. Nor MPEG2 nor VC-1. Nor TS or m2ts transport streams.
There's also a problem with your approach: You want to use a framerate of 59.940 for video content and of 29.970 (or 23.976) for movie content. But what about mixed content? What about movies which have video content drawn over them? Your desired framerate definition is the "framerate after ideal deinterlacing". But the splitter doesn't know what kind of deinterlacing will be performed. E.g. if you use LAV Splitter -> Typical Decoder -> madVR, you'll likely get "weave" deinterlacing, which will actually produce 29.970p. So having LAV Splitter report a framerate of 59.940p would even be wrong in this case. The only correct output for LAV Splitter for interlaced ATSC/NTSC content is IMHO 29.970p.
nevcairiel
15th April 2011, 19:00
Just another FYI, Nev. VC-1 from an HD DVD in an MKV is a real pain in the ass. The pulldown flags don't get removed in MakeMKV, so, it causes the decoder problems. In my case I'm using Cyberlink HAM mode and it's able to handle it. ffdshow with either wmr9 or libavcodec gets out of sync almost immediately cause it's not detecting the proper FPS. (It thinks it's 29.whatever meaning it believes it's 60fps whereas the content is really 23.976). The Cyberlink decoder seems to handle that quite nicely. ffdshow not so much. I was only testing ffdshow to see if its sub renderer could handle the HD DVD subs. It can't. No surprise, just doing my due diligence. In any case I really wish there was an easy, quick way to take the stupid MKV's and remove the pulldown so they show up as 23.976 like they're supposed to. I haven't tried LAVF CUVID to see how it handles this situation yet. ;)
Thats the same when playing the .evo file. ffdshow doesn't understand those flags, but Cyberlink does, so does LAV CUVID.
From a quick look into the code ffmpeg seems to be using the offset idea (line 2394), so it seems they would need to use only 24+offset and 60+offset readings. Currently it uses an offset of 4.
I saw that part, but its not directly used for the framerate guessing. I'm not 100% sure what that value is used for in the end..
Trusting the container is what i'll do for now anyway.
yesgrey
15th April 2011, 19:12
There's also a problem with your approach: You want to use a framerate of 59.940 for video content and of 29.970 (or 23.976) for movie content. But what about mixed content? What about movies which have video content drawn over them?
OK. Now I understand and have to agree why the field concept was extended. It's the difference between the theoretical perfect world and the real world, with all the possibilities in it, like mixing video with film in the same sequences.
The only correct output for LAV Splitter for interlaced ATSC/NTSC content is IMHO 29.970p.
Following the previous logic I have to agree. However, if the decoder then performs the ideal deinterlacing it should set the frame rate accordingly as 59.940, and not simply passing the splitter frame rate to the renderer.
Trusting the container is what i'll do for now anyway.
I'm fine with that too.
SamuriHL
15th April 2011, 19:13
Thats the same when playing the .evo file. ffdshow doesn't understand those flags, but Cyberlink does, so does LAV CUVID.
Ok, well, that's good then. That means in my case all 3 machines will play nice with that file. :) Thanks!
madshi
15th April 2011, 19:51
Following the previous logic I have to agree. However, if the decoder then performs the ideal deinterlacing it should set the frame rate accordingly as 59.940, and not simply passing the splitter frame rate to the renderer.
Agreed.
VipZ
15th April 2011, 20:16
Nev, is there any reason for the latest commits that disable FLAC?
I don't seem to have any issue with my FLAC files and LAV Splitter.
Would I still be able to use the extensions registry to use LAV Splitter for FLAC?
If any one wouldn't mind, could you upload the latest build.
Thanks
nevcairiel
15th April 2011, 20:53
Its just off by default (in the audio decoder), not disabled. The decoder throws out alot of warnings/errors and some people did report A/V sync issues that i could not fix yet, so i decided to change the default.
VipZ
15th April 2011, 21:01
Its just off by default (in the audio decoder), not disabled. The decoder throws out alot of warnings/errors and some people did report A/V sync issues that i could not fix yet, so i decided to turn change the default.
Thanks, guess that's why I didn't notice any issues as I only have FLAC for music.
Mercury_22
15th April 2011, 21:15
Nev, is there any reason for the latest commits that disable FLAC?
I don't seem to have any issue with my FLAC files and LAV Splitter.
Would I still be able to use the extensions registry to use LAV Splitter for FLAC?
If any one wouldn't mind, could you upload the latest build.
Thanks
Nevcairiel-LAVFSplitter-0.22-26-ga6ff28c (http://www.multiupload.com/7SYRHD7CRC)
VipZ
15th April 2011, 22:13
Nevcairiel-LAVFSplitter-0.22-26-ga6ff28c (http://www.multiupload.com/7SYRHD7CRC)
Thanks
hoborg
16th April 2011, 09:42
Hi.
Will be possible to use LAVF splitter with "File Source (URL)" for online streaming FLV/MP4/etc... ?
For example inside MediaPortal Online Videos plugin?
VipZ
16th April 2011, 10:13
Nev, with the build from Mercury, I think there may be a very minor lip sync issue in MKV with H264, at times I feel its fine, and others I question it. If I use the MPC one or official 0.22, I don't feel like I see lip sync issues. Wandering if this is the change regarding H264 in MKV.
Also the OGM, is now perfect in this build, no more 1st frame to key frame corruption on start of playback.
Thunderbolt8
16th April 2011, 13:58
nvm -.-
SamuriHL
16th April 2011, 13:59
Msvc run time.
nevcairiel
16th April 2011, 19:52
Hi.
Will be possible to use LAVF splitter with "File Source (URL)" for online streaming FLV/MP4/etc... ?
For example inside MediaPortal Online Videos plugin?
In theory it should work, the url source uses the same interfaces as the file source, but i probably need to handle some cases that i wont get the duration, and seeking wont work too well.
BatKnight
16th April 2011, 21:36
Nev, with the build from Mercury, I think there may be a very minor lip sync issue in MKV with H264, at times I feel its fine, and others I question it. If I use the MPC one or official 0.22, I don't feel like I see lip sync issues. Wandering if this is the change regarding H264 in MKV.
Also the OGM, is now perfect in this build, no more 1st frame to key frame corruption on start of playback.
It's a known issue of LAV Audio and MKV with FLAC tracks.
Use madFLAC instead, it works flawlessly.
Bat
VipZ
16th April 2011, 22:17
It's a known issue of LAV Audio and MKV with FLAC tracks.
Use madFLAC instead, it works flawlessly.
Bat
This was this AC3 bit streamed, don't have any MKV's with FLAC in it.
nevcairiel
16th April 2011, 23:11
I think there may be a very minor lip sync issue in MKV with H264, at times I feel its fine, and others I question it.
I disabled one of the sync changes, maybe someone can produce some test build for you and you can report if you still feel that you see it. Sadly those very minor things are hard to detect.
ranpha
17th April 2011, 01:12
From my tests, the 'Generate missing timestamps' option only seems to work for .mkv files, but not with *.avi and probably .mp4 too. Can the missing timestamp generation option be also enabled for those two formats?
Mercury_22
17th April 2011, 08:44
I disabled one of the sync changes, maybe someone can produce some test build for you and you can report if you still feel that you see it. Sadly those very minor things are hard to detect.
Nevcairiel-LAVFSplitter-0.22-29-g5ce415f (http://www.multiupload.com/97YOJQ4PUO)
allak
17th April 2011, 18:51
Nevcairiel-LAVFSplitter-0.22-29-g5ce415f (http://www.multiupload.com/97YOJQ4PUO)
Thanks. For what is worth, this has fixed a/v synchro problems with some very old .avi files that I have.
nevcairiel
17th April 2011, 19:20
Thanks. For what is worth, this has fixed a/v synchro problems with some very old .avi files that I have.
Compared to what build? The one he posted before, or official 0.22?
allak
17th April 2011, 23:14
Compared to what build? The one he posted before, or official 0.22?
Official 0.22.
nevcairiel
18th April 2011, 06:56
Great. :)
nlnl
18th April 2011, 15:22
Thanks for the info! And does LAV Splitter play mono LPCM streams in m2ts ?
Probably does. I don't know if i have tested one yet. Don't see why it wouldn't.
But lets not spam madshi's thread, if you have any questions, you can find the appropriate thread in my signature.
MPC HC splitter does not play mono LPCM streams in m2ts :(.
If LAV does that is great!
Can test that only in 5 days.
nevcairiel
18th April 2011, 15:39
I actually found a sample file of this, and it works just fine.
VipZ
18th April 2011, 17:35
Nevcairiel-LAVFSplitter-0.22-29-g5ce415f (http://www.multiupload.com/97YOJQ4PUO)
Thanks
Nev, I will use this build for a few days and report back.
Mercury_22
18th April 2011, 17:42
@nev
VC-1 (i) not smooth again! (Nevcairiel-LAVFSplitter-0.22-34-g260f99c (http://www.multiupload.com/4ESRP70BT3))
But only when some old black and white material it's added in the main "film" ( maybe "video in film" ? :confused: )
I have a sample but I had to make it big 500mb for it to include all this so if you want me to "up it":) let me know
Edit @ Vipz I've build an update see the link above
nevcairiel
18th April 2011, 17:48
Maybe that file is just broken?
The things i changed did actually fix some files for me.
The only things changed are better detection of keyframes and other seeking improvements. And i reverted a stupid change from before that broke some files.
What do you mean with "not smooth" anyway? Is it totally broken, just one short error?
Mercury_22
18th April 2011, 17:59
Maybe that file is just broken?
The things i changed did actually fix some files for me.
The only things changed are better detection of keyframes and other seeking improvements. And i reverted a stupid change from before that broke some files.
What do you mean with "not smooth" anyway? Is it totally broken, just one short error?
I'm sure it's not broken (blu-ray) and also it plays fine with official 0.22 and MPC-HC's internal splitter
By not smooth I mean very choppy the frame rate it's "going nuts"
EDIT look here http://img577.imageshack.us/g/lavofficial022.png/
nevcairiel
18th April 2011, 18:09
Thats directly from the BluRay, and not in MKV?
Can you try again with the latest?
Mercury_22
18th April 2011, 18:25
Thats directly from the BluRay, and not in MKV?
Can you try again with the latest?
Yes from Blu-ray folder and it's "smooth" again with the latest :thanks:
Nevcairiel-LAVFSplitter-0.22-36-g932dc3f (http://www.multiupload.com/ZEKJT01UQO)
nevcairiel
18th April 2011, 18:44
Thanks for testing! :)
Mercury_22
18th April 2011, 18:54
Thanks for testing! :)
Thanks for your work !
P.S. I still think you should have my sample ( if it's not to big) It's from BBC MADAGASCAR UK version
nevcairiel
18th April 2011, 18:55
If it works fine now, its all good.
fastplayer
18th April 2011, 19:31
Typo in common/DSUtilLite/DShowUtil.h, line 62:
// Gennenric... should be // Generic...
nlnl
18th April 2011, 19:36
I actually found a sample file of this, and it works just fine.
Thanks!
Please try that one (no video for small size). Does not work for me. Very slow playback, in jam :). The same with MPC splitter. Haali is OK!
http://www.multiupload.com/HB60BVQ65J
nevcairiel
18th April 2011, 19:41
Thanks!
Please try that one (no video for small size). Does not work for me. Very slow playback, in jam :). The same with MPC splitter. Haali is OK!
http://www.multiupload.com/HB60BVQ65J
Plays fine.
VipZ
18th April 2011, 21:27
Thanks Mercury for supplying me with test builds :)
Regarding the lip sync issue, I think it may be fine with the build Nevcairiel-LAVFSplitter-0.22-29-g5ce415f, though its the kind of thing if you look to hard you can possibly think you seeing an issue.
I will update to latest and continue testing.
nlnl
19th April 2011, 07:17
Plays fine.
Will you please try MPC splitter.
I have this issue (mono lpcm in m2ts) using MPC splitter fo ages! Haali works good.
And I do have the same issue using LAV :(.
nevcairiel
19th April 2011, 07:19
Maybe your decoder is broken. The file plays just perfectly for me. I didn't try the MPC Splitter - whats the point, its working for me.
Try using LAV Audio as well, thats what i use for LPCM decoding.
nlnl
19th April 2011, 07:38
Maybe your decoder is broken. The file plays just perfectly for me. I didn't try the MPC Splitter - whats the point, its working for me.
Try using LAV Audio as well, thats what i use for LPCM decoding.
nevcairiel
Thank you:thanks: !
You are right! MPC+LAV audio+LAV splitter work brilliant!
The problem (mono LPCM) is MPC LPCM decoder !?
Have you plans to add bitstreaming (DTS HD MA, Dolby True HD) to LAV audio?
webs0r
19th April 2011, 12:48
OK I just installed this and tested it with an .mkv that Haali used to report strange fps' on... and..... it works! :)
My problem - LAV splitter does not load for .AVI files.
Haali has been uninstalled. I've boosted LAV's priority to highest....
MPC-HC reports that some AVI splitter (low merit) gets loaded instead.
Has anyone else encountered this? (Windows 7) Any tips?
nevcairiel
19th April 2011, 12:52
AVI is currently broken in 0.22, it'll be fixed in 0.23.
But AVI isn't all that special, using the default splitter in the time being should be fine. :)
hoborg
19th April 2011, 12:55
But AVI isn't all that special, using the default splitter in the time being should be fine. :)
I have problem with default OS AVI splitter and AVIs with multiple audio tracks - graphstudio/player crash when video stop.
Of cousre it is working just fine with LAVF :)
nevcairiel
19th April 2011, 12:58
I was more referring to the MPC-HC splitter, but sure. 0.23 will be out soon enough.
webs0r
19th April 2011, 13:01
AVI is currently broken in 0.22, it'll be fixed in 0.23.
But AVI isn't all that special, using the default splitter in the time being should be fine. :)
Ahh thanks for the info, I was starting to turn things upside down to figure out what was going on.
I would prefer LAV to load rather than the default :) Both in MPC-HC and in Mediaportal.
nevcairiel
19th April 2011, 13:05
I have one thing to finish to implement, and then some testing and cleaning, then 0.23 should be out. Hopefully i can finish it before the easter weekend.
Hypernova
20th April 2011, 06:37
First, I want to say I'm sorry if I report a known problem again. I don't really watching the thread closely.
I set my mouse wheel to Jump Forward/Backward (medium) in MPC-HC. LAV Spliter almost always get "stuck" when I do forward 2-3 times consecutively. It does not jump forward but jump back to the same point. On somehow related note, there are problems like video and audio getting out of sync after seeked as well. I tested with madVR and EVR Sync. I didn't have this problem last time I tried LAVSpliter. I'm not sure, but I think that was 0.19.
I remember read it somewhere that I supposed to use a special build of ffdshow but cannot find it anymore. Is that still true? Maybe that's the cause?
disto
20th April 2011, 12:33
Hello.Please separate LAVF Splitter from LAVAudio.If posiible could you provide two packages one for LAVF Splitter and one for LAVFAudio.Thank you in advance.
nevcairiel
20th April 2011, 13:02
Hello.Please separate LAVF Splitter from LAVAudio.If posiible could you provide two packages one for LAVF Splitter and one for LAVFAudio.Thank you in advance.
Why?
The splitter and the decoder themself are tiny, the libraries are big, and both use them. So if i create two packages, i would have to double the libraries, thats double the size - i don't see how that is better in any known universe.
SamuriHL
20th April 2011, 13:21
No, I'm not in favor of separating them, either.
Sebastiii
20th April 2011, 20:25
me too :)
RobertinoM
20th April 2011, 22:12
When I am using Graphstudio and I am rendering a file..
I don't see LAV Splitter? Just for Audio I can see it. But not for Video... Is this correct?
And please keep it in one package, that keeps it simple... (to be honest, I have no idea if it is enough to extract it into one dir e.g. c:\LAV\ and then register the splitter)
Regards Robertino
sneaker_ger
21st April 2011, 01:45
I set my mouse wheel to Jump Forward/Backward (medium) in MPC-HC. LAV Spliter almost always get "stuck" when I do forward 2-3 times consecutively. It does not jump forward but jump back to the same point. On somehow related note, there are problems like video and audio getting out of sync after seeked as well. I tested with madVR and EVR Sync. I didn't have this problem last time I tried LAVSpliter. I'm not sure, but I think that was 0.19.
I remember read it somewhere that I supposed to use a special build of ffdshow but cannot find it anymore. Is that still true? Maybe that's the cause?
Sorry, I don't have an answer to your question, but I tested it myself and found it funny that when "jumping" in MPC-HC LAV Splitter would seek to arbitrary frames instead of nearest preceding keyframe, which I asked about recently:
I don't know the technical details, although I understand that the decoder needs the previous frames in case I'm not seeking to an I-Frame. But this works just fine using Haali and Gabest. If I seek to the end of a 10 second GOP with Haali, seeking might take a fraction of a second on my quad core. With your splitter I have to watch the entire GOP from start. This also means that you can't seek to chapter starts exactly if they don't start on an I-Frame (for whatever reason).
This can now (I swear I tested it some time ago and it didn't work for some reason, probably stupidity) be done by deactivating MPC-HC's "fast seek(on keyframe)" "tweak".
So I hereby withdraw my feature request, as it can already be done. And it's even better then Haali, because it can be turned on and off.
robpdotcom
21st April 2011, 03:32
This isn't really a feature request, just curiosity:
Will LAVSplitter eventually be able to display the forced subs only from PGS subtitle streams? Is that even something a splitter could do, or would that be something for the subtitle renderer?
Hypernova
21st April 2011, 06:58
Sorry, I don't have an answer to your question, but I tested it myself and found it funny that when "jumping" in MPC-HC LAV Splitter would seek to arbitrary frames instead of nearest preceding keyframe, which I asked about recently:
This can now (I swear I tested it some time ago and it didn't work for some reason, probably stupidity) be done by deactivating MPC-HC's "fast seek(on keyframe)" "tweak".
So I hereby withdraw my feature request, as it can already be done. And it's even better then Haali, because it can be turned on and off.
I think I understand about 70% of what you said, which make me know even less about the details, but disable fast seek like you said works great! :thanks:
Edit: A/V out of sync after seeked still happen though.
Edit2: Forcing LAV Audio Decoder solved the problem. :)
nevcairiel
21st April 2011, 07:01
This can now (I swear I tested it some time ago and it didn't work for some reason, probably stupidity) be done by deactivating MPC-HC's "fast seek(on keyframe)" "tweak".
So I hereby withdraw my feature request, as it can already be done. And it's even better then Haali, because it can be turned on and off.
All i do is offer the information about those cue points to the player, if it uses them to do faster (yet inaccurate) seeks, its out of my hands.
MPC-HC enabled that option by default some time ago, which already caused some issues, but hey.
Will LAVSplitter eventually be able to display the forced subs only from PGS subtitle streams? Is that even something a splitter could do, or would that be something for the subtitle renderer?
Thats something a sub renderer should be doing. I don't interpret any streams, i just send them to the decoders to do their magic with.
Personally, i have only seen BluRays where the forced subs are in their separate track, though. (Sadly, you cannot detect if they are forced subs just from the track. <.<)
Hypernova
21st April 2011, 07:26
Short question: the splitter still doesn't support ordered chapter right? I did a search and only find info about a patch.
nevcairiel
21st April 2011, 07:27
No it does not.
Hypernova
21st April 2011, 07:35
No it does not.
Thanks. Now I'll go sit and wait in the corner. :)
nevcairiel
21st April 2011, 10:13
I do plan to work on this sometime soon, as its a feature i would like to be able to use (also a challenge to get it working). At the latest, i want it ready when the new LOTR BluRay sets come out - the movies are split on two discs each, and my goal is to combine them in one flawless MKV, with theatrical and extended in one file. :) Normally i would just keep them on the disc, but with being split on two discs .. rather combine them! :)
This means i want to support editions/ordered chapters, what will not be supported right away is external segment linking - that is chapters in external files. I do not know when/how/if that will ever be worked on, it adds a whole extra layer of complexity - and i think its silly to begin with.
Since this is a rather big undertaking - i basically have to rewrite the MKV demuxer completly, or even a new one - i cannot guarantee anything.
Personally, i'm even doubtful that i can make it work in that given timespan.. but we'll see!
Maybe i can also join those two discs in one BluRay structure ..mmm..wonder if that works with some of the free BD authoring tools .. mmm.
SamuriHL
21st April 2011, 13:15
Sure. That's a piece of cake. :) I was already planning on doing 2 MKV's myself for the LOTR extended editions. But reauthoring...not an issue. :)
nevcairiel
21st April 2011, 13:42
Two MKVs would be the fallback solution, one for each edition. Not that i really care about the space used, but implementing that MKV features is one of the ultimate goals too (and i like a challenge)
SamuriHL
21st April 2011, 14:00
That'd definitely be nice. I've never made an mkv like that before.
robpdotcom
21st April 2011, 15:56
what will not be supported right away is external segment linking - that is chapters in external files.
What about the other type of segment linking, where the linking is done via header info? Is that any easier?
nevcairiel
21st April 2011, 16:51
For those building their own versions, i just commited a new properties page that lets you control the formats that LAV Splitter will demux (its alot, i already filtered and grouped some, but still alot formats in ffmpeg). It would be great if you could give it a quick whirl and see if it works.
I grouped raw audio formats (aac, ac3, dts, etc) and raw video format (.h264, .vc1, etc) into one configuration each, which did seem like a good idea at the time to keep the list shorter. Would anyone want to configure those formats separately? Is there any use-case in that? (note that raw video formats currently do not work very well anyway due to missing timestamps)
You will need to re-register the splitter to get the page to show up.
Now only left tuning the installer a bit to work with the new configuration, then i'll name it .23 and work on new things.
PS: The list is sorted by simple comparison of the name, i hope to do some sorting by importance later (have all the "cool" formats on top)
Sebastiii
21st April 2011, 18:16
Thanks :)
SamuriHL
21st April 2011, 18:35
Looks good, Nev.
neoufo51
21st April 2011, 19:33
Can't wait to get back AVI support.
nevcairiel
21st April 2011, 20:06
LAV Filters 0.23
General
- There is now an installer available in addition to the trusted old .zip files!
LAV Splitter
- Added support for using the "File Source (Async)" (and others) together with LAV Splitter
- This is the new default mode for improved compatibility!
- Check release notes for additional informations.
- Added configuration which input formats will be demuxed
- Improved VC-1 in MKV playback
LAV Audio
- Fixed playback of lossless formats with huge sample sizes
- Improved A/V sync with TrueHD (and possibly others)
- FLAC decoding is now disabled by default, because the decoder is not 100% working
Download: Installer (both x86/x64) (http://files.1f0.de/lavf/LAVFilters-0.23.exe) -- Zips: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.23.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.23-x64.zip)
I liked doing the statistic the last time around, so here goes again!
37 files changed, 1383 insertions(+), 259 deletions(-)
First, thanks to clsid for his contributions on the installer script!
Now, the first important point. LAV Splitter and the "File Source (Async)".
You might want to start reading this post: http://forum.doom9.org/showpost.php?p=1491938&postcount=1583
I'll outline the most important facts here again, anyhow:
- Using the File Source (Async) is "better". It lets a dedicated filter do the File I/O, which is probably far more efficient. Also, its the way a splitter was designed to function (in Media Foundation, there is no other way then this).
- It'll allow you to use LAV Splitter with all files it supports, without manual media type hacking or whatnot. MPC-HC, for example, always creates a "File Source (Async)" filter, if it cannot find a dedicated file source, for all files.
- It allows more fine-grained control of which formats to use.
To adapt to these changes:
- If your player supports assigning source filters to file types, then you can still simply assign "LAV Splitter Source" to the file type, no changes for you (MPC-HC doesn't do this)
- In MPC-HC, you can add the "File Source (Async)" in the external filter list as preferred, as well as "LAV Splitter", which will ensure that they'll always be used.
- Disable all other source filters (Haali, MPC-HC internal filters), then the "File Source (Async)" will automatically take over, and LAV Splitter gets used.
- You can manually assign extensions to the "LAV Splitter Source", as a last resort.
In general, it really shouldn't be a problem, unless you have many different source filters installed, which are fighting out who gets used.
If you have problems with this, or questions, just ask.
Anyway, this will fix the AVI problem that hit 0.21 and 0.22, also fix the MPEG-TS MediaType problem Blight reported.
On the installer - its still very simple, and i'm open to any suggestions.
On the input format configuration in LAV Splitter - the list is simply sorted alphabetically, i do plan to put the important formats on top at some point. But cosmetcs .. meh, not important! :)
If you encounter any issues, as always, please report them!
PS:
As always, i recommend unregistering the old version, and re-registering the new version after installation!
jeremy33
21st April 2011, 21:07
Thank you nevcairiel !
Just a little question, in mpchc we have to add the "File Source (Async)" in the external filter list before or after "LAV Splitter" ?
nevcairiel
21st April 2011, 21:11
The order doesn't matter. You can also just try first, and see if LAV Splitter maybe "just loads".
BTW, i fixed a bug in MPC-HC that fixed the external filter list behaviour when adding the file source, you might need at least 3032 for that. But again, if you only install LAV Splitter, and disable the internal filters, it'll just work. All these things are only needed if you have multiple source filters installed. :)
janos666
22nd April 2011, 00:18
Sorry for the stupid question but the search function didn't help to find the answer:
Does this decoder really decodes the full DTS-HD MA track or does it only decodes the simple DTS "core" (like FFDShow does)?
Snowknight26
22nd April 2011, 01:09
Line 148 of demuxer/LAVSplitter/SettingsProp.cpp could be changed to
addHint(IDC_SUBSTREAMS, L"Controls if sub-streams should be exposed as a separate stream.\nSub-streams are typically streams for backwards compatibility, for example the AC3 part of TrueHD streams on Blu-rays.");
for consistency.
mindbomb
22nd April 2011, 01:55
Does this decoder really decodes the full DTS-HD MA track or does it only decodes the simple DTS "core" (like FFDShow does)?
the decoder doesnt afaik, but the splitter does work well with decoders that do.
anyway, i can't get it to work by just adding the file source async and lav splitter to preferred in external filters. I'm finding that I have to make sure the internal source filters are disabled.
Also, is file source (async) supposed to be in the filters list? I just see lav splitter.
CruNcher
22nd April 2011, 03:09
Hmm nev i didn't tested that yet though it's on my todo but in File Source Sync mode wouldn't it be impossible to work with locked files which are still data is written to, as it might be possible todo with lav splitter as source filter (depending if its aware of it) ?
also another test broke with the newer versions now nev that was (indirectly) related to the Video Stream Parsing sync issue :(
http://www.mediafire.com/?iye63xy9l5lmbq9 (black screen with new version, like as Video Stream Parsing is disabled in 0.22)
nevcairiel
22nd April 2011, 05:52
Also, is file source (async) supposed to be in the filters list? I just see lav splitter.
In MPC-HC, you won't see it by name. But if you have one entry saying "LAV Splitter", and one entry which is just the name of the file, then that one is the "File Source (Async)". Before 0.23, that entry with just the file name would've been LAV Splitter, now you see it as a separate filter.
Does this decoder really decodes the full DTS-HD MA track or does it only decodes the simple DTS "core" (like FFDShow does)?
Since its based on ffmpeg (like ffdshow), it cannot decode more then the DTS core.
http://www.mediafire.com/?iye63xy9l5lmbq9 (black screen with new version, like as Video Stream Parsing is disabled in 0.22)
The file seems to be broken. ffplay doesn't play it properly either, and it outputs some interesting warnings on the console.
I updated ffmpeg since 0.22, which might as well have broken this. :p
webs0r
22nd April 2011, 06:26
Installed 0.23.
Thankyou!!
Sebastiii
22nd April 2011, 10:32
Installer is great :)
Thanks.
edison
22nd April 2011, 11:46
is that possible add seamless playback support ? :)
VipZ
22nd April 2011, 11:55
0.23 works very well and have now disabled my forced registry entries since no longer needed, so long to many hours of making a custom installer for filters to choose the best filter :)
Regards to sync issues in MKV, I think its a non issue now.
How does the settings in the property page affect registration, If I had to make custom options in my installer, would it make a difference if the options were in registry before or after ax registration?
Sebastiii
22nd April 2011, 11:58
is that possible add seamless playback support ? :)
If it's was for BD, it's already working :)
v0lt
22nd April 2011, 18:35
@nevcairiel
fix for support for little-endian int ('in24', 'in32') and float ('fl32', 'fl64') in .MOV's
CMediaType CLAVFAudioHelper::initAudioType(CodecID codecId, unsigned int &codecTag)
{
...
case CODEC_ID_PCM_DVD:
mediaType.subtype = MEDIASUBTYPE_DVD_LPCM_AUDIO;
break;
// support for little-endian int: 'in24', 'in32' (used reverse GUIDs)
case CODEC_ID_PCM_S24LE:
if (codecTag == MKTAG('i', 'n', '2', '4')) mediaType.subtype = MEDIASUBTYPE_PCM_IN24_le;
break;
case CODEC_ID_PCM_S32LE:
if (codecTag == MKTAG('i', 'n', '3', '2')) mediaType.subtype = MEDIASUBTYPE_PCM_IN32_le;
break;
// support for little-endian float: 'fl32', 'fl64' (used reverse GUIDs)
case CODEC_ID_PCM_F32LE:
if (codecTag == MKTAG('f', 'l', '3', '2')) mediaType.subtype = MEDIASUBTYPE_PCM_FL32_le;
break;
case CODEC_ID_PCM_F64LE:
if (codecTag == MKTAG('f', 'l', '6', '4')) mediaType.subtype = MEDIASUBTYPE_PCM_FL64_le;
break;
}
return mediaType;
}
http://samples.mplayerhq.hu/mov/qtaudio/
nevcairiel
22nd April 2011, 20:22
How does the settings in the property page affect registration, If I had to make custom options in my installer, would it make a difference if the options were in registry before or after ax registration?
Registration is not affected at all by the registry settings.
@nevcairiel
fix for support for little-endian int ('in24', 'in32') and float ('fl32', 'fl64') in .MOV's
Little Endian formats don't need decoding - they are just plain PCM, the same the decoder would output. Well except 64-bit float, i don't think any audio renderer supports those.
It would be much better to actually generate a proper PCM media type for those, so that no decoder is needed.
BTW, just use LAV Audio, and you'll never need to setup silly media types again - ever!
Ger
22nd April 2011, 22:58
What cosmetic issue?
Says "mpeg2video main, yuv420p, 544x576, 15000 kb/s" for me.
Weird. Looks different for me:
http://i.imgur.com/diHgm.png
Don't worry about the window AR, I stretched it out to fit the filters menu in the window screenshot.
All(?) my MPEG-2 seem to have various weird characters now. Not sure when it started, but I used to see "mpeg2video" before too. Maybe it's some other weirdness going on with my system or a locale/cp/unicode issue, but h264 looks normal for some reason.
The screenshot is with BE mod, but I tried the regular MPC-HC trunk as well with the same results. Seems purely cosmetic though. Playback is fine. So no biggie.
EDIT: Actually, in case it helps, the third "weird" character, the "q" in that screenshot, changes. I can reopen the same file and it's something different. Character 1, 2 and 4 seems constant. Tested with MPEG-2 in .vob and .ts and a couple of different decoders.
EDIT2: Rebooted and now the fourth character is different as well. Only the first two seem to be constant. :confused:
pankov
22nd April 2011, 23:53
I confirm the "weird" character issue.
I'm using ZoomPlayer and with v0.23 I get the same strange characters in the video stream name for MPEG2 in .ts container. For other formats or when using v0.22 everything is fine - I get "mpeg2video main".
v0lt
23rd April 2011, 05:34
Little Endian formats don't need decoding - they are just plain PCM, the same the decoder would output.
But the LAV Splitter makes a header that is not handled correctly.
Well except 64-bit float, i don't think any audio renderer supports those.
The MpaDecFilter produces the sound on 64-bit float stream.:cool:
BTW, just use LAV Audio, and you'll never need to setup silly media types again - ever!
Check out these examples (http://www.mediafire.com/?d5l9yas32fplup2). Half of the sample noise in LAV Audio and MpaDecFilter. After my patch, most samples (except 64-bit float) are played without any problems in LAV Audio, and MpaDecFilter plays back all tracks. :p
Gleb Egorych
23rd April 2011, 05:47
I confirm the "weird" character issue.
I'm using ZoomPlayer and with v0.23 I get the same strange characters in the video stream name for MPEG2 in .ts container.
Same here. Win7 x64, ZoomPlayer.
nevcairiel
23rd April 2011, 08:39
I confirm the "weird" character issue.
I'm using ZoomPlayer and with v0.23 I get the same strange characters in the video stream name for MPEG2 in .ts container. For other formats or when using v0.22 everything is fine - I get "mpeg2video main".
I see it too, but the weird thing is, only in release builds. And only on mpeg-2 .. how is that for making sense. o.O
Edit:
I still dont know why it happend, but i fixed it..
nevcairiel
23rd April 2011, 09:12
Check out these examples (http://www.mediafire.com/?d5l9yas32fplup2). Half of the sample noise in LAV Audio and MpaDecFilter. After my patch, most samples (except 64-bit float) are played without any problems in LAV Audio, and MpaDecFilter plays back all tracks. :p
Ah, i see what the problem is. I'll fix it.
Edit:
Fixed. S16LE, S24LE, S32LE, FL32LE play fine without any decoder now, and FL64LE plays fine with LAV Audio and MpaDec. All the big-endian formats still need the decoder, of course.
v0lt
23rd April 2011, 11:48
Fixed. S16LE, S24LE, S32LE, FL32LE play fine without any decoder now, and FL64LE plays fine with LAV Audio and MpaDec. All the big-endian formats still need the decoder, of course.
Thanks, now plays without any problems. :)
VipZ
23rd April 2011, 12:38
Nev, I found that AAC in MKV doesn't work well currently, some crash at start, others stall during playback and then some work ok, all the files work fine with the MPC splitter. If I create a sample of the files, they don't show the issue, but if I remux the entire file, the issue is present.
The issue occurs with any AAC decoder.
nevcairiel
23rd April 2011, 12:41
Without a sample, i cannot help you. All MKVs with AAC i have play just fine.
Did you try flipping the audio stream parsing switch?
VipZ
23rd April 2011, 13:01
Without a sample, i cannot help you. All MKVs with AAC i have play just fine.
Did you try flipping the audio stream parsing switch?
Let me try test to see at what size I need to cut to to show the issue. Yep I tried that option, made no difference.
Edit: Here is a sample http://www.mediafire.com/?86vluoud1m2lo6d
nevcairiel
23rd April 2011, 13:29
Thanks, i'll have a look.
What exactly is the problem with that file? It seems to start and play just fine, not sure what i should be looking for.
I see one issue with that file, that is that the FPS is detected wrong, funny thing is, i saw that exact problem before with another One Piece sample. But that alone shouldn't matter for playback.
Oh, one problem i noticed though, when you're using EVR-CP and have "Frame Time Correction" set to ON, that wrong FPS will totally break playback - but only video, audio is fine :D
VipZ
23rd April 2011, 13:43
Thanks, i'll have a look.
What exactly is the problem with that file? It seems to start and play just fine, not sure what i should be looking for.
Many frames get dropped, also the FPS is shown as 0fps. Here is a screenshot showing some info http://www.mediafire.com/i/?3g5ewddcq6bxzlz
I have also tested with both ffdshow and MPC DXVA for video decoding, with no difference.
EDIT, I just tried to remux it with just video, and same issue, so this isn't an issue with AAC in this file, but the H264 stream.
nevcairiel
23rd April 2011, 13:52
I applied some fix to ignore very unsual container fps (it reports something like 359,64 fps) and use the calculated average fps instead, which seems to fix this. There is still however some weird thing going on when i activate VSYNC in EVR-CP - this is a 29.97fps movie, but the VSYNC mode seems to want to squish it into 25-26fps despite my screen being 59.94, which should be a perfect match - something weird is going on (but this problem also exists with MPC-HC splitter)
Or is this variable frame rate content which would explain switches between 29.97 and 25 fps? o.O
VipZ
23rd April 2011, 13:54
I applied some fix to ignore very unsual container fps (it reports something like 359,64 fps) and use the calculated average fps instead, which seems to fix this. There is still however some weird thing going on when i activate VSYNC in EVR-CP - this is a 29.97fps movie, but the VSYNC mode seems to want to squish it into 24 or 25fps .. something weird is going on.
I just looked through a bunch of the files with this issue, they all have this is common with MediaInfo
Frame rate mode : Variable
Ger
23rd April 2011, 13:55
Seems to be the same VFR/ffmpeg issue (Github #31):
http://forum.doom9.org/showthread.php?p=1484908#post1484908
nevcairiel
23rd April 2011, 13:56
Well the change i did will at least report some fps, which is 29.97 in this samples case, which makes it work better - i guess. With VFR, this value is really meaningless, but apparently the MPC-HC EVR Renderer doesn't like getting a fps of around 359. :P
According to some resources i found, i'm just supposed to set it to 0 for VFR - lets see if i can detect this.
VipZ
23rd April 2011, 14:02
Well the change i did will at least report some fps, which is 29.97 in this samples case, which makes it work better - i guess. With VFR, this value is really meaningless, but apparently the MPC-HC EVR Renderer doesn't like getting a fps of around 359. :P
According to some resources i found, i'm just supposed to set it to 0 for VFR - lets see if i can detect this.
hehe :) Yep, you right, switching to EVR and the issue is no longer present
Thanks.
Ger
23rd April 2011, 14:06
Or if you want to keep using EVR-CP until the fix is ready/compiled, just press v to disable vsync for the time being.
nevcairiel
23rd April 2011, 14:07
Doesn't look like i can easily detect variable fps, but the fix i made will at least make sure that the fps reported will be somewhat sane, and actually fixed the two problem files i had (yours and the one from Ticket #31 - both One Piece, heh)
Or if you want to keep using EVR-CP until the fix is ready/compiled, just press v to disable vsync for the time being.
VSYNC doesn't break, Frame Time Correction does (press C). VSYNC just looks weird in the graph, one second its running as a straight line (29.97 on 59.94 display), then it switches to the jagged line (24p on 59.94Hz)
I thought it was to be blamed before i realized its VFR content.
With LAV Splitter, my goal is to never need Frame Time Correction again, so please turn it off, and if some movie doesn't play properly with it off (most likely only with one specific decoder), please report that, so i can fix the timestamps, thanks =)
Ger
23rd April 2011, 14:17
Huh? With LAV Splitter 0.23, internal MPC-HC decoder and EVR-CP, FTC on/off makes little difference for me with both samples. Disabling vsync OTOH seems to do the trick. I had FTC off in the first place.
With LAV Splitter, my goal is to never need Frame Time Correction again, so please turn it off, and if some movie doesn't play properly with it off (most likely only with one specific decoder), please report that, so i can fix the timestamps, thanks =)
I think I know one sample+decoder combination where FTC is needed. I'll verify later. Going to watch EPL footie now. :)
nevcairiel
23rd April 2011, 14:42
Maybe both need to be off for perfect playback, i didn't really pay attention that closely when testing. But the VSYNC thing i cannot fix anyway, thats all the renderers doing.
VipZ
23rd April 2011, 15:41
For me, disabling VSync does the trick for now.
Could someone upload the latest build if possible ? :)
nevcairiel
23rd April 2011, 16:16
<<buggy build, see a few posts below for a new one>>
I don't usually do these quick and untested builds, but this one is special - its extra untested!
In fact, i just upgraded ffmpeg - and they just recently removed all deprecated functions, and cleaned up the libraries alot. I hope i switched everything over to the proper APIs, and i hope everything still functions - but you never know after such a big ffmpeg update - so more testing from you guys. :p
Oh btw, the names of the ffmpeg libraries changed (all version numbers +1). Having both in one folder doesn't hurt, but just a heads up that you might want to clean them.
SamuriHL
23rd April 2011, 16:18
LOL! Great. :) And I was gong to watch the Batman collection today. I guess that'll be good to test it out. :)
SamuriHL
23rd April 2011, 16:31
Nev, it doesn't look like ffmpeg is committed. Can you please check as my build just failed.
nevcairiel
23rd April 2011, 16:35
Latest commit in my ffmpeg repository (http://git.1f0.de/gitweb?p=ffmpeg.git;a=commit;h=870b9910950d636a880c0a81865acf409b59833b): 870b9910950d636a880c0a81865acf409b59833b
Commit referenced in latest LAV Splitter commit: (https://github.com/Nevcairiel/LAVFSplitter/commit/fd6ad074519c7aba054ccda2b466b6496a197c05#diff-10) 870b9910950d636a880c0a81865acf409b59833b
Looks all good!
SamuriHL
23rd April 2011, 16:38
Freaky. I did another update and was able to pull the code. GIT just hates me. :D
nevcairiel
23rd April 2011, 18:39
The build earlier had a rather bad bug, it emptied the files it opened (only when using "LAV Splitter Source" to open files directly, when going through the "File Source (Async)" there was no way for this to happen, Blu-rays also didn't have that problem).
Silly ffmpeg changing the meaning of the file opening flags.
I have since fixed the bug, anyone doing custom builds, i recommend re-building them immediately. Here is a new build with that fixed:
http://files.1f0.de/lavf/LAVFilters-0.23-11-g5d50f7c.zip
SamuriHL
23rd April 2011, 18:53
YIKES! Good thing I'm only testing on blu-rays so far!!! :)
nevcairiel
23rd April 2011, 19:13
Yeah its the worst thing they can do, change the meaning of existing flags, so i have to keep up with their internal changes - you're not supposed to replace the internal file protocol, but hey, it doesn't support unicode path names on Windows, so i had to do something. :P
SamuriHL
23rd April 2011, 19:17
Nice. :) We do like the unicode path names in Windows. Especially for non-english windows users. :)
Gleb Egorych
23rd April 2011, 20:10
Silly ffmpeg changing the meaning of the file opening flags.
Funny bug, luckily I had a backup :)
VipZ
23rd April 2011, 20:11
Phew, just as well I removed the manual registry entries :)
Ger
23rd April 2011, 21:23
http://files.1f0.de/lavf/LAVFilters-0.23-11-g5d50f7c.zip
No new ffmpeg issues found so far. Never tried the file eating build. :)
A very quick test with the two VFR samples showed no frame drops with MPC-HC decoder or CoreAVC (vsync on, FTC off). With the 0.23 release version it barely played at all with MPC-HC decoder and vsync on in EVR-CP. I was going to suggest closing issue 31, but I see you've already done it.
The MS DTV-DVD decoder still has black flashes during the opening song of the first/Gitgub VFR sample on my system, but that is also the case with the MPC-HC splitter, so it must be a MS decoder issue. The other decoders are fine, so I'd say case closed.
With LAV Splitter, my goal is to never need Frame Time Correction again, so please turn it off, and if some movie doesn't play properly with it off (most likely only with one specific decoder), please report that, so i can fix the timestamps, thanks =)
Here's the sample (http://www.multiupload.com/39QG155RJW) I referred to earlier. TS/mpeg2 recorded from DVB-S. Live event from the US transcoded to PAL by the broadcaster. Was originally 10 GB. I used Total Commander's binary splitter to cut off everything after the first 100 MB. The issue remains the same after the cut.
ffdshow + EVR-CP: No FTC needed (symmetrical graphs and 50 fps achieved with either Auto or Force bob flags for hw deint).
MPC-HC libmpeg2 decoder + EVR-CP: FTC needed. If "set interlaced flags" (hw deint) is checked it plays at ~43 fps and with that option off (using software/auto deinterlacing) it plays at ~18 fps. EVR-CP graph is "ugly" with FTC off in both cases. With FTC on it plays fine at 50/25 fps with hw/software deint respectively, and the graph also looks OK.
Someone with a Nvidia GPU also told me FTC is needed for symmetrical EVR-CP graphs with LAV CUVID and this sample, but I don't know for sure.
Next issue:
I haven't seen a wrong MPEG-TS duration with LAV Splitter for a long time now, but MPEG-PS still seems to have some duration issues. This vob (http://www.le-homecinema.com/trailers-dvd/disneyhomeent.vob) should be around 8 seconds, but is shown as over 26 hours.
nevcairiel
23rd April 2011, 21:30
You can try disabling the stream parsing option in the lav splitter config, that should fix it for libmpeg2 - and hopefully not break for other decoders.
It did fix it with LAV CUVID for me, and not break for anything else - i'm going to force-disable the parsing for mpeg2, i guess. (I actually had some .VOB just an hour ago that i had this with, too)
Ger
23rd April 2011, 22:35
Yeah, the ts/mpeg2 sample no longer needs FTC when video stream parsing is off. Quickly tested several other mpeg2/ts streams with ffdshow and MPC-HC decoders and saw no downside to disabling it for mpeg2.
With h264 it was the opposite. Parsing needed to be on to avoid FTC with CoreAVC DXVA.
It's funny to watch some mpeg2 streams (not that sample but some other ones) with the MPC-HC decoder and the stats enabled form the start. The reported frame rate starts high (for a/v sync reasons I guess), then quickly drops to 43 fps, then it realizes that it should be 50 and corrects itself in a couple of seconds, and is stable at 50 after that. Doesn't happen with ffdshow/force bob (drops straight down to 50). Just an observation, nothing wrong with it.
nevcairiel
23rd April 2011, 23:21
I'll disable it for mpeg2 everywhere then, thanks for testing.
SamuriHL
24th April 2011, 02:06
So, Nev. I created a custom "24" resolution with the new driver and set the refresh rate to 23.976 manually. madVR shows me 23.974xx when playing and not a single dropped frame. Audio sync is damn near flawless now. I'm EXTREMELY pleased with the new setup! When I upscaled a 720p59 file up to 1080p59, it was so exact that I'd lose 1 frame every 3 hours according to madVR. LOL! :) That's obviously using the latest (since I built earlier, anyway) LAVF Splitter and your latest 0.4 LAV CUVID with the new nVidia drivers. I really couldn't be more happy with the setup right now. There's only 2 features "missing" that'd make it so I could drop commercial players altogether. One is less urgent...the bitstreaming in the splitter. The other is what's keeping me from completely dropping TMT5....title selection. When watching my wife's Glee discs it's difficult to know which MPLS file is the next episode...you'd THINK it'd be in order. BAHAHA, no. :) This is really awesome!!!!
nevcairiel
24th April 2011, 06:41
Can only hope that they are at least in sequential order on the discs .. i mean, even when you know which titles are available, how are you otherwise going to know which episode is which - all i can tell you is which .mpls file that is, and the duration.
Gleb Egorych
24th April 2011, 07:40
nevcairiel, could you please replace mp1 and mp2 decoders with mp1float and mp2float like you did for mp3?
BTW tested the latest version of the filters, no decoding bugs found (except known). MPEG2-TS video stream name fixed, thanks. There is a small interface bug: if you call LAV Audio Decoder settings window and after that change audio stream or, for example, DVB channel then status tab is not updated correspondingly (codec, number of channels, channel bars, etc).
nevcairiel
24th April 2011, 07:47
The status page is once populated on opening, there is no (easy) way to let it know that the settings changed - that'll have to remain this way.
Carpo
24th April 2011, 10:30
One is less urgent...the bitstreaming in the splitter.
I agree to the bit-streaming, guess we just have to wait :)
CruNcher
24th April 2011, 11:01
Still broken http://forum.doom9.org/showpost.php?p=1494637&postcount=1739
nevcairiel
24th April 2011, 11:30
Still broken http://forum.doom9.org/showpost.php?p=1494637&postcount=1739
Yeah, broken files don't have a tendency to suddenly repair themself.
Next issue:
I haven't seen a wrong MPEG-TS duration with LAV Splitter for a long time now, but MPEG-PS still seems to have some duration issues. This vob (http://www.le-homecinema.com/trailers-dvd/disneyhomeent.vob) should be around 8 seconds, but is shown as over 26 hours.
The video stream of that file does for some reason have a duration of 26 hours, must be something weird about the timestamps in the file - doesn't look like i can do something about it.
SamuriHL
24th April 2011, 13:32
Can only hope that they are at least in sequential order on the discs .. i mean, even when you know which titles are available, how are you otherwise going to know which episode is which - all i can tell you is which .mpls file that is, and the duration.
They aren't. Which sucks.
SamuriHL
24th April 2011, 13:52
Actually, Nev, I have one request when you implement the title set selection code. Can you make it so we can configure a minimum duration to display? For instance, if there's, let's say, 20 titlesets on a disc, maybe I don't want to see any that are shorter than 30 minutes show up in the titleset menu. But that duration would be AWESOME if it were configurable in the properties. Thanks!!
nevcairiel
24th April 2011, 13:59
I need to filter by duration anyway, having that configurable will be easy.
SamuriHL
24th April 2011, 14:20
Sweet. That will make things so much nicer when dealing with BD's. We'll be able to switch between theatrical and extended versions with ease. :) That will be a really nice addition.
mr.duck
24th April 2011, 14:49
There are a couple of things the MKV splitter built into MPC-HC does that would be nice if LAVsplitter could match.
1) LAVsplitter does not show the title tag at all (would you like a sample?)
2) MPC-HC MKV splitter does not lock the file it opens. File can be moved or renamed and it keeps playing. Is quite useful for my setup with accessing files over the network by multiple people.
nevcairiel
24th April 2011, 14:52
How files are opened is out of my hands - either the "File Source (Async)" opens them, or ffmpeg itself does it, nothing i can influence. Besides, i think its silly to expect a video to continue playing when the source file suddenly changes its name.
Plutotype
24th April 2011, 18:54
Hi Nevcairel,
Is it only my setup, that LAVsplitter reports 48k stream when 96k audio stream is present in the m2ts file?
http://www.megaupload.com/?d=7YEBF5XT
Reclock is reporting 96000 Hz, 8 channel(s), 24 bits PCM, but LAVsplitter only 48000Hz. Is this by design, or can we see 96000Hz already at the splitter?
Thanks
Pluto
nevcairiel
24th April 2011, 18:56
Its currently not possible to detect the exact contents of a DTS-HD stream. It'll usually never show more then 48kHz and 6 channels.
Plutotype
24th April 2011, 19:06
Its currently not possible to detect the exact contents of a DTS-HD stream. It'll usually never show more then 48kHz and 6 channels.
Thanks for the answer,
At least I know for now, that everything is ok with the filters setup.
SamuriHL
24th April 2011, 19:23
Ffdshow has the same issue. Its just a display issue only.
mark0077
24th April 2011, 23:37
Hi, still enjoying your splitter, but have 1 question about it, 1 question about your video decoder.
Is it possible for your splitter to cause audio / video desync. Comparing your splitter to the internal m2ts splitter, watching The Dark Knight blu-ray, m2ts file, I'm getting fairly bad audio / video desync with your splitter sometimes, and sometimes after a period of time, which doesn't seem to happen with the internal mpc-hc splitter. The track is true-hd
Regarding your video decoder, have you had time to add any sort of buffering you once spoke about that may allow the likes of myself to use it over ffmpeg-mt. You may remember I was having dropped frames with your decoder vs ffmpeg-mt and you said it might be possible to improve with some form of buffering by the decoder.
jmone
25th April 2011, 00:11
I think i figured it out. It actually happened because TrueHD has so small samples (for the 48kHz file i had, 40 samples in one audio frame, thats 0.833333ms (going on periodically)).
Due to that periodic number, i couldn't accurately store those numbers in an integer, so eventually the error would sum up, and the value would slowly drift apart, one millisecond at a time.
Now, i changed it to store those numbers in a double precision floating point - which reduces integer precision from 64-bit to 52-bit (still big enough for around ~20 years of timestamps), but gives me the ability to store a timestamp like 0.8333ms much more accurately.
Nevcairiel - As promised, I just finished testing the TrueHD sync issue using Ver 0.23 (LAVFilters-0.23-11-g5d50f7c) and I can confirm that the lip sync is now fixed! :)
Aslo - I don't know that the LAV splitter/decoder has any impact on this bug posted at JR's Beta Forum - http://yabb.jriver.com/interact/index.php?topic=62996.msg425890;topicseen#msg425890
mark0077 - this was an issue for me as well in Ver 0.22 and earlier
jmone
25th April 2011, 03:15
Nevcairiel - There is an issue with True-HD decoding pulsing/stuttering in and out with LAVAudio and FFDSHOW (but not Arcsoft Audio HD Decoder) when used in conjunction with JRivers MC DSP EQ Plugin. More details: http://yabb.jriver.com/interact/index.php?topic=62996.msg425890#msg425890 and comments from Matt start here http://yabb.jriver.com/interact/index.php?topic=63692.msg425901#msg425901
Hypernova
25th April 2011, 04:22
I do plan to work on this sometime soon, as its a feature i would like to be able to use (also a challenge to get it working). At the latest, i want it ready when the new LOTR BluRay sets come out - the movies are split on two discs each, and my goal is to combine them in one flawless MKV, with theatrical and extended in one file. :) Normally i would just keep them on the disc, but with being split on two discs .. rather combine them! :)
This means i want to support editions/ordered chapters, what will not be supported right away is external segment linking - that is chapters in external files. I do not know when/how/if that will ever be worked on, it adds a whole extra layer of complexity - and i think its silly to begin with.
Since this is a rather big undertaking - i basically have to rewrite the MKV demuxer completly, or even a new one - i cannot guarantee anything.
Personally, i'm even doubtful that i can make it work in that given timespan.. but we'll see!
Maybe i can also join those two discs in one BluRay structure ..mmm..wonder if that works with some of the free BD authoring tools .. mmm.
Kind of late but this sounds great! I don't know much about the topic though, so could you tell me, is what you planned to do going to work with those fansubs OP/ED linking? That's the only time I need order chaptered. :thanks:
nevcairiel
25th April 2011, 08:57
Is it possible for your splitter to cause audio / video desync. Comparing your splitter to the internal m2ts splitter, watching The Dark Knight blu-ray, m2ts file, I'm getting fairly bad audio / video desync with your splitter sometimes, and sometimes after a period of time, which doesn't seem to happen with the internal mpc-hc splitter. The track is true-hd
Were you using only the splitter, or my audio decoder as well? There was a bug in earlier versions that caused TrueHD sync to drift in the decoder, but that was fixed in 0.23 - i've since only had confirmations that its fixed now.
Regarding your video decoder, have you had time to add any sort of buffering you once spoke about that may allow the likes of myself to use it over ffmpeg-mt. You may remember I was having dropped frames with your decoder vs ffmpeg-mt and you said it might be possible to improve with some form of buffering by the decoder.
Did you try 0.4? There have been alot of improvements since you first talked about this.
nlnl
25th April 2011, 10:02
nevcairiel
Thanks for .23!
Can not play dts hd ma audio in mkv http://www.multiupload.com/FJ7YOCNC6M (MPC+LAV splitter+ffdshow (bitstream)+Madvr), but Haali plays it fine.
nevcairiel
25th April 2011, 10:19
Can not play dts hd ma audio in mkv http://www.multiupload.com/FJ7YOCNC6M (MPC+LAV splitter+ffdshow (bitstream)+Madvr), but Haali plays it fine.
Plays just fine for me, using LAV Splitter, ffdshow and ReClock for bitstreaming - on my NVIDIA GTS 450.
nlnl
25th April 2011, 10:33
Plays just fine for me, using LAV Splitter, ffdshow and ReClock for bitstreaming - on my NVIDIA GTS 450.
Thanks!
I have 5750+W7+default audio renderer
nevcairiel
25th April 2011, 11:02
I could never get bitstreaming working right with the default renderer..
nevcairiel
25th April 2011, 11:42
Nevcairiel - There is an issue with True-HD decoding pulsing/stuttering in and out with LAVAudio and FFDSHOW (but not Arcsoft Audio HD Decoder) when used in conjunction with JRivers MC DSP EQ Plugin. More details: http://yabb.jriver.com/interact/index.php?topic=62996.msg425890#msg425890 and comments from Matt start here http://yabb.jriver.com/interact/index.php?topic=63692.msg425901#msg425901
I produced a test build which could either fix it, or at least rule one problem out - see your testing thread.
jmone
25th April 2011, 12:19
Thanks - first tests look good and it is working on my main PC (need to test on the HTPC when we finish watching a Blu!) :)
CruNcher
25th April 2011, 12:37
please add this subtype to the lav audio decoder nev {AACE71A1-8259-4250-8583-49613AF31C93}
nevcairiel
25th April 2011, 12:51
please add this subtype to the lav audio decoder nev {AACE71A1-8259-4250-8583-49613AF31C93}
Why ?
Also, not enough information. A subtype alone is meaningless.
jmone
25th April 2011, 13:39
Thanks - first tests look good and it is working on my main PC (need to test on the HTPC when we finish watching a Blu!) :)
I can confirm that the fix works on both my PC and the HTPC with TrueHD played from both a MKV and off a Blu-ray disk - Thanks!
clsid
25th April 2011, 14:13
The dlls can be made a bit smaller by adding this to the configure script:
--disable-decoder=aasc \
--disable-decoder=amv \
--disable-decoder=anm \
--disable-decoder=ansi \
--disable-decoder=asv1 \
--disable-decoder=asv2 \
--disable-decoder=aura \
--disable-decoder=aura2 \
--disable-decoder=avs \
--disable-decoder=bethsoftvid \
--disable-decoder=bfi \
--disable-decoder=bink \
--disable-decoder=bmp \
--disable-decoder=c93 \
--disable-decoder=cavs \
--disable-decoder=cdgraphics \
--disable-decoder=cinepak \
--disable-decoder=cljr \
--disable-decoder=cscd \
--disable-decoder=cyuv \
--disable-decoder=dfa \
--disable-decoder=dnxhd \
--disable-decoder=dpx \
--disable-decoder=dsicinvideo \
--disable-decoder=dvvideo \
--disable-decoder=dxa \
--disable-decoder=eacmv \
--disable-decoder=eamad \
--disable-decoder=eatgq \
--disable-decoder=eatgv \
--disable-decoder=eatqi \
--disable-decoder=eightbps \
--disable-decoder=eightsvx_exp \
--disable-decoder=eightsvx_fib \
--disable-decoder=escape124 \
--disable-decoder=ffv1 \
--disable-decoder=ffvhuff \
--disable-decoder=flashsv \
--disable-decoder=flic \
--disable-decoder=flv \
--disable-decoder=fourxm \
--disable-decoder=fraps \
--disable-decoder=frwu \
--disable-decoder=gif \
--disable-decoder=h261 \
--disable-decoder=h263 \
--disable-decoder=h263i \
--disable-decoder=h264 \
--disable-decoder=huffyuv \
--disable-decoder=idcin \
--disable-decoder=iff_byterun1 \
--disable-decoder=iff_ilbm \
--disable-decoder=indeo2 \
--disable-decoder=indeo3 \
--disable-decoder=indeo5 \
--disable-decoder=interplay_video \
--disable-decoder=jpegls \
--disable-decoder=jv \
--disable-decoder=kgv1 \
--disable-decoder=kmvc \
--disable-decoder=lagarith \
--disable-decoder=loco \
--disable-decoder=mdec \
--disable-decoder=mimic \
--disable-decoder=mjpeg \
--disable-decoder=mjpegb \
--disable-decoder=mmvideo \
--disable-decoder=motionpixels \
--disable-decoder=mpeg1video \
--disable-decoder=mpeg2video \
--disable-decoder=mpeg4 \
--disable-decoder=mpegvideo \
--disable-decoder=msmpeg4v1 \
--disable-decoder=msmpeg4v2 \
--disable-decoder=msmpeg4v3 \
--disable-decoder=msrle \
--disable-decoder=msvideo1 \
--disable-decoder=mszh \
--disable-decoder=nuv \
--disable-decoder=pam \
--disable-decoder=pbm \
--disable-decoder=pcx \
--disable-decoder=pgm \
--disable-decoder=pgmyuv \
--disable-decoder=pictor \
--disable-decoder=png \
--disable-decoder=ppm \
--disable-decoder=ptx \
--disable-decoder=qdraw \
--disable-decoder=qpeg \
--disable-decoder=qtrle \
--disable-decoder=r10k \
--disable-decoder=r210 \
--disable-decoder=rl2 \
--disable-decoder=roq \
--disable-decoder=rpza \
--disable-decoder=rv10 \
--disable-decoder=rv20 \
--disable-decoder=rv30 \
--disable-decoder=rv40 \
--disable-decoder=sgi \
--disable-decoder=smacker \
--disable-decoder=smc \
--disable-decoder=snow \
--disable-decoder=sp5x \
--disable-decoder=sunrast \
--disable-decoder=svq1 \
--disable-decoder=svq3 \
--disable-decoder=targa \
--disable-decoder=theora \
--disable-decoder=thp \
--disable-decoder=tiertexseqvideo \
--disable-decoder=tiff \
--disable-decoder=tmv \
--disable-decoder=truemotion1 \
--disable-decoder=truemotion2 \
--disable-decoder=tscc \
--disable-decoder=txd \
--disable-decoder=ulti \
--disable-decoder=v210 \
--disable-decoder=v210x \
--disable-decoder=vb \
--disable-decoder=vc1 \
--disable-decoder=vcr1 \
--disable-decoder=vmdvideo \
--disable-decoder=vmnc \
--disable-decoder=vp3 \
--disable-decoder=vp5 \
--disable-decoder=vp6 \
--disable-decoder=vp6a \
--disable-decoder=vp6f \
--disable-decoder=vp8 \
--disable-decoder=vqa \
--disable-decoder=wmv1 \
--disable-decoder=wmv2 \
--disable-decoder=wmv3 \
--disable-decoder=wnv1 \
--disable-decoder=xan_wc3 \
--disable-decoder=xan_wc4 \
--disable-decoder=xl \
--disable-decoder=yop \
--disable-decoder=zlib \
--disable-decoder=zmbv \
--disable-decoder=ass \
--disable-decoder=dvbsub \
--disable-decoder=dvdsub \
--disable-decoder=pgssub \
--disable-decoder=srt \
--disable-decoder=xsub \
--disable-demuxer=applehttp \
--disable-demuxer=ffm \
--disable-demuxer=ffmetadata \
--disable-demuxer=mpegtsraw \
--disable-demuxer=spdif \
--disable-demuxer=tty \
--disable-demuxer=vc1test \
--disable-demuxer=yuv4mpegpipe \
This disables all video decoders, subtitle stuff, and unused demuxers.
Does the splitter need the video parsers from libavcodec? If not, those could be disabled as well.
nevcairiel
25th April 2011, 14:17
The dlls can be made a bit smaller by adding this to the configure script:
[...]
This disables all video decoders, subtitle stuff, and unused demuxers.
Does the splitter need the video parsers from libavcodec? If not, those could be disabled as well.
The decoders are needed to gather the full set of information from the files, disabling them will break codec detection in many containers that do not contain 100% complete header informations.
Personally, i also don't care much about saving a few kb's of space. (also, video decoders will be used by the video decoder sooner or later)
And yes, the video parsers are used as well.
I could probably disable those demuxers that are never used, but meh.
Budtz
25th April 2011, 15:44
Hey Guys
I have just switched to this splitter. I have looked through this tread but i am having trouble forming af clear picture of what the diffenrence/improvemnts there are compared to Haali's splitter. One difference seems to be that subtitles loads by default wich is nice. Also i am not sure what ecactly a splitter does. Is the only function that it makes it possible to switch between different sound and suptitle tracks? And should i only enable the splitter for mkv-files and use mpc-hc's splitters for other files
Kind Regards
VipZ
25th April 2011, 15:46
Nev, Regarding Issue #33.
I have also been noticing this recently up to the latest build posted here. When I open the file, the 1st few frames subtitles don't display but if I had to click stop and then play or seek to the beginning the subtitles play correctly.
nevcairiel
25th April 2011, 15:51
Nev, Regarding Issue #33.
I have also been noticing this recently up to the latest build posted here. When I open the file, the 1st few frames subtitles don't display but if I had to click stop and then play or seek to the beginning the subtitles play correctly.
Yeah i can reproduce it just fine, i just don't know why =)
CruNcher
25th April 2011, 15:55
Here is some TS compare (*.ts only not *.m2ts) i stopped comparing vs Cyberlinks Demuxer as their is no match yet :(
MPC-HC TS Splitter
---------------------
+ Stream switching works (depending on Decoder instant (Fast Stream switch) switching possible (Cyberlink Mpeg-2), most Decoder on next Keyframe switching)
+ No sync issues with some ADTS muxed streams (Hauppauge HDPVR)
- Latm fails (gets detected as Mpeg-1 Audio)
- some VC-1 TS fail (Video gets detected as Audio Stream)
Lav TS Splitter
-----------------
- No Stream switching
-+ Sync issues with ADTS muxed streams (Hauppauge HDPVR) (though Video Stream Parsing can be disabled that fixes it other "broken" streams anyways stopped working that where affected by this setting)
+ Latm works
+ More VC-1 TS work (doesn't get detected as Audio Stream)
VipZ
25th April 2011, 15:58
Yeah i can reproduce it just fine, i just don't know why =)
This may be bad idea :) , but what about on opening a file, do a seek to the beginning?
nevcairiel
25th April 2011, 16:12
- No Stream switching
Eh? You can switch between streams just perfectly.
nevcairiel
25th April 2011, 16:32
This may be bad idea :) , but what about on opening a file, do a seek to the beginning?
I decided to fix it properly instead. How is that for an idea? :)
From what i could see, it should've only ever affected SSA/ASS subs, yea?
Anyway, i dug into ffmpeg and removed the broken code in the mkv demuxer there.
VipZ
25th April 2011, 17:04
I decided to fix it properly instead. How is that for an idea? :)
From what i could see, it should've only ever affected SSA/ASS subs, yea?
Anyway, i dug into ffmpeg and removed the broken code in the mkv demuxer there.
That's always better :)
Thanks
nevcairiel
25th April 2011, 18:08
LAV Filters 0.24
General
- Big ffmpeg update! Libraries have been renamed (version increase)
LAV Splitter
- Obviously wrong frame rates will no longer be reported to the decoder
- Improved mpeg2 playback
- Improved dynamic media type changes
- Fix the first few frames of ASS/SSA subtitles in Matroska
- Fix an issue with the display of some codec names
- Add proper subtypes for little-endian PCM
- Fix subtypes for QT PCM
LAV Audio
- Support processing of 64-bit double output from the decoders
- PCM data will be buffered before its send to the renderer/post processor
Download: Installer (both x86/x64) (http://files.1f0.de/lavf/LAVFilters-0.24.exe) -- Zips: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.24.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.24-x64.zip)
No comments today, my food is about done and i'm hungry!
CruNcher
25th April 2011, 18:19
Eh? You can switch between streams just perfectly.
Huh in Hillary.0000.ts neither in multiplex.ts the other Video Streams are shown in the list, i don't mean normal Audio stream switching, crazily the Video Switching works indeed for *.m2ts though i not have a full *.m2ts stream with multiple different streams (lower SD res documentary stream) to test that only streams where another stream is indicated and their it switches to black (obviously) but for .ts (Satellite stuff) their is no switching support or i must be blind MPC-HC splitter has that support but it works so so (very decoder dependent) ;)
Also already 2 *.m2ts streams by now cause a crash in Cyberlinks Decoder (264dsse3) with Lav Splitter (0.23)
fastplayer
25th April 2011, 18:39
LAV Filters 0.24
The progress you make from release to release is just :eek:
:thanks:
SamuriHL
25th April 2011, 18:49
The progress you make from release to release is just :eek:
:thanks:
It really is most impressive!
nevcairiel
25th April 2011, 18:50
Huh in Hillary.0000.ts neither in multiplex.ts the other Video Streams are shown in the list, i don't mean normal Audio stream switching, crazily the Video Switching works indeed for *.m2ts though i not have a full *.m2ts stream with multiple different streams
You're talking about DVB files with multiple programs. Thats program switching, not stream switching. Blu-rays have different streams, of the same movie. DVB files have different programs, which different sets of streams, but not related to each other.
Also already 2 *.m2ts streams by now cause a crash in Cyberlinks Decoder (264dsse3) with Lav Splitter (0.23)
I figured out whats causing it, and am doing it on purpose on as many files as i can find, just for you! :p
VipZ
25th April 2011, 18:51
I also have a MPEG-TS file with multiple video/audio streams, one with 1080i MPEG2/AC3 and the 2nd set at 480i MPEG2/AC3
MPC does switch perfectly on this TS, but does get the duration wrong. LAV cant switch either video or audio, but gets the duration right
Personally this didn't bug me much due to LAV selecting the 1080i and playing it perfectly.
If you want me to try get a sample of this let me know, no idea how easy on dual video TS files this is though?
Here is the MPC splitters breakdown on stream's http://www.mediafire.com/i/?e3yo957a040rkhf
LAV Filters 0.24
Thanks for the new version :)
nevcairiel
25th April 2011, 18:55
The MPC-HC splitter just ignores programs, and shows streams of all programs. But thats rather silly, as with programs, you basically need/want to switch video, audio and subs at the same time, and not every stream separately (how much fun is video from program 2 with audio from program 1...?)
VipZ
25th April 2011, 18:57
The MPC-HC splitter just ignores programs, and shows streams of all programs. But thats rather silly, as with programs, you basically need/want to switch video, audio and subs at the same time, and not every stream separately (how much fun is video from program 2 with audio from program 1...?)
True, as long as it plays the HD program, I am happy :)
nevcairiel
25th April 2011, 18:58
True, as long as it plays the HD program, I am happy :)
It actually plays the first program in the file, just consider yourself lucky. :D
Sebastiii
25th April 2011, 19:38
The progress you make from release to release is just :eek:
:thanks:
+1
Really Great ;)
Thank you again.
totya
25th April 2011, 19:46
Hi!
I'm uses this splitter, because MPC-HC built in splitter don't like my avi files with x264 codec (lossless).
But this splitter new versions too not good.
0.20 OK, http://img202.imageshack.us/i/1goode.png/
0.21 0.22 no video
0.23 0.24 picture is bad, http://img199.imageshack.us/i/0bad.png/
See pictures with full size.
Sample video:
http://www.multiupload.com/NMJBU9ZVC7
CruNcher
25th April 2011, 19:51
Nev with the latest ffplay from Libav http://forum.doom9.org/showpost.php?p=1494637&postcount=1739 <- works fine with the one from ffmpeg it fails using http://research.m1stereo.tv/ffmpeg/snapshots/?C=M;O=D
The fail from ffmpeg though seems to be in this case a decoder failing maybe though also his build compilation, but at least the parsing works in both cases so your splitter is bugged since 0.23 and 0.24 with this stream now (black screen issue).
nevcairiel
25th April 2011, 19:55
0.20 OK, http://img202.imageshack.us/i/1goode.png/
0.21 0.22 no video
0.23 0.24 picture is bad, http://img199.imageshack.us/i/0bad.png/
Your "bad" image looks alot sharper, and you think thats bad? I would call your "good" as bad.
totya
25th April 2011, 20:08
Your "bad" image looks alot sharper, and you think thats bad? I would call your "good" as bad.
Hi!
I know, this is sharp, but ugly with real nature video. This is only show what is the different. Version 0.20 (or few lower version what I see) play correcty this file, similar play with VLC and other media players (without LAVF).
nevcairiel
25th April 2011, 20:10
The splitter has no influence how the decoded video looks. If the decoder is making it sharper, thats the decoder doing it.
totya
25th April 2011, 20:16
The splitter has no influence how the decoded video looks. If the decoder is making it sharper, thats the decoder doing it.
Hi!
This is not really true, I only install/uninstall your filter, and I see different. See yourself with sample video, if you want, with MPC-HC.
nevcairiel
25th April 2011, 20:33
Thats still the decoders doing. Its responsible for parsing the data i give to it, if it interprets different forms of data differently - there isn't much to do.
I tested with CoreAVC, as it seems to be the only H264 decoder i have that can decode H264 Lossless, and the sample video looks just fine to me, as sharp as a desktop recording should be.
That said, i had to fix something to get H264 in AVI to work at all with CoreAVC. :)
Maybe it helps you, check the link to the new version at the bottom of this post.
also another test broke with the newer versions now nev that was (indirectly) related to the Video Stream Parsing sync issue :(
http://www.mediafire.com/?iye63xy9l5lmbq9 (black screen with new version, like as Video Stream Parsing is disabled in 0.22)
I fixed playback of that file. Its still a broken non-spec-compliant file, but at least it'll play again. Didn't test sync, as i prefer listening to my music. :p
Just throw this on top of 0.24; http://files.1f0.de/lavf/LAVSplitter-0.24-2-gcb45165.zip
CruNcher
25th April 2011, 20:39
I guess it wont play without Video Parsing enabled ;) ? so it will probably break the sync HDPVR playback then again, nice to see @ least that it doesn't influence any Mpeg-2 streams anymore in terms of sync issues :D
kieranrk
25th April 2011, 20:39
The sample here does not decode with lavcaudio: http://forum.doom9.org/showthread.php?p=1495512#post1495512
This is possibly because of the MPEG-4 ancillary data it has.
nevcairiel
25th April 2011, 20:39
I guess it wont play without Video Parsing enabled ;) ? so it will probably break the sync HDPVR playback then again :D
No idea, i dont test without parsing enabled.
pankov
25th April 2011, 20:40
nev,
if I'm not asking too much, would you add shortcuts for LAVSplitter and LAVAudio configuration in the Start Menu folder?
I've been playing around with the settings and a few times I had to start Graph Studio to open the properties page ( I could have done it through ZoomPlayers options also) to be able to change some settings - like re-enable the demuxing of some formats
nevcairiel
25th April 2011, 20:48
The sample here does not decode with lavcaudio: http://forum.doom9.org/showthread.php?p=1495512#post1495512
This is possibly because of the MPEG-4 ancillary data it has.
The file plays just fine. However, its AAC in LATM format, which will only work if you're using LAV Splitter as well.
There is no real standard how to transfer AAC LATM over DirectShow, so i do it how ffmpeg gives me the data, i pre-parse the data in the splitter (assembling of full frames, mostly), and do the actual LATM decoding in the decoder.
The MPC-HC internal MPEG Splitter does not support LATM at all, neither does any other widely used splitter. Only some special DVB Source filters support it, and possible the TS splitter in Media Portal.
Anyhow, use LAV Splitter with LAV Audio, and that file plays just peachy.
nev,
if I'm not asking too much, would you add shortcuts for LAVSplitter and LAVAudio configuration in the Start Menu folder?
I've been playing around with the settings and a few times I had to start Graph Studio to open the properties page ( I could have done it through ZoomPlayers options also) to be able to change some settings - like re-enable the demuxing of some formats
Its not that easy, sadly. I'll have to look up how to spawn a properties page without an actual player that usually does that job. I'll get to it eventually..
CruNcher
25th April 2011, 20:51
The sample here does not decode with lavcaudio: http://forum.doom9.org/showthread.php?p=1495512#post1495512
This is possibly because of the MPEG-4 ancillary data it has.
What Sattelite Recording App/Hardware transmuxes @ record into BDAV *.m2ts ?
kieranrk
25th April 2011, 20:52
The file plays just fine. However, its AAC in LATM format, which will only work if you're using LAV Splitter as well.
There is no real standard how to transfer AAC LATM over DirectShow, so i do it how ffmpeg gives me the data, i pre-parse the data in the splitter (assembling of full frames, mostly), and do the actual LATM decoding in the decoder.
The MPC-HC internal MPEG Splitter does not support LATM at all, neither does any other widely used splitter. Only some special DVB Source filters support it, and possible the TS splitter in Media Portal.
Anyhow, use LAV Splitter with LAV Audio, and that file plays just peachy.
Ah, never mind. It was some mainconcept thing causing the issue.
nevcairiel
25th April 2011, 20:53
What Sattelite Recording App/Hardware transmuxes @ record into BDAV *.m2ts ?
According to the original poster, "Panasonic Freeview HD recorder", which seem to be able to record HD TV onto Blu-rays.
CruNcher
25th April 2011, 21:01
Hehe funny so this is now .m2ts with latm instead of .ts, didn't knew that latm is supported for Blu-Ray officialy but if Panasonic does it it seems so, or their Hardware/Software just understands it for interoperability reasons :D
pankov
25th April 2011, 21:03
Its not that easy, sadly. I'll have to look up how to spawn a properties page without an actual player that usually does that job. I'll get to it eventually..
:thanks:
No hurry
btw
if it can help the ffdshow guys have exposed some functions like "configure"/"configureAudio"/"configureRaw"/....
and use them for the shortcuts:
rundll32.exe ".....\ffdshow.ax",configureAudio
totya
25th April 2011, 21:09
...Maybe it helps you, check the link to the new version at the bottom of this post.
I fixed playback of that file. Its still a broken non-spec-compliant file, but at least it'll play again. Didn't test sync, as i prefer listening to my music. :p
Just throw this on top of 0.24; http://files.1f0.de/lavf/LAVSplitter-0.24-2-gcb45165.zip
Hi, thx, this version works correctly again, picture is good (not ugly sharp). Very thanks.
non-spec-compliant file
I think this is "compliant" file, see x264 vfw settings: http://img62.imageshack.us/i/x264codecsettings.png/
nevcairiel
25th April 2011, 21:10
H264 in AVI is never compliant with anything :D
But as long as it works for you..
CruNcher
25th April 2011, 21:17
I fixed playback of that file. Its still a broken non-spec-compliant file, but at least it'll play again. Didn't test sync, as i prefer listening to my music. :p
Just throw this on top of 0.24; http://files.1f0.de/lavf/LAVSplitter-0.24-2-gcb45165.zip
Yes perfect NEV it works without Video Stream parsing now that fixes the HDPVR sync issue now automatically after disabling it, still testing if it broke something else (disabling Video Parsing for *.ts) but it looks good so far perfect :)
Nope none of the test samples broke 100% Hit rate :) yes, now MPC-HC *.ts Splitter only has it's half DVB layer support that put's it in front else file compatibility wise it's losing currently vs Lav Splitter (broken,strange muxed,crazy files).
so now it looks like this
MPC-HC TS Splitter
---------------------
+ Program Stream switching (DVB) works (Video only) (depending on Decoder instant (Fast Stream switch) switching possible (Cyberlink Mpeg-2), most Decoder on next Keyframe switching)
+ No sync issues with some ADTS muxed streams (Hauppauge HDPVR)
- Latm fails (gets detected as Mpeg-1 Audio)
- some VC-1 TS fail (Video gets detected as Audio Stream)
Lav TS Splitter
-----------------
- No Program Stream switching (DVB)
+ No sync issues with some ADTS muxed streams (Hauppauge HDPVR)
+ Latm works
+ More VC-1 TS work (doesn't get detected as Audio Stream)
totya
25th April 2011, 21:28
H264 in AVI is never compliant with anything...
... but all players play fine, only except if x264 encoder settings is lossless. But perfect quality capture need lossless mode. The final format (after edit and convert) is mkv, this is "compliant".
Thanks again for ur job.
Midzuki
25th April 2011, 21:42
H264 in AVI is never compliant with anything :D
But as long as it works for you..
I'd rather see H264 in .AVI than hear Vorbis in .MP4. :p
jmone
25th April 2011, 23:25
nevcairiel - J.River are making advancements in their support for your Blu-ray (using LAVSplitter) for MediaCenter. I renamed the thread and posted some thoughts on what features should be added and would appreciate your comments on these at http://yabb.jriver.com/interact/index.php?topic=62259.msg426074#msg426074
BatKnight
26th April 2011, 15:26
Nev, I've got this Bluray that doesn't load the Portuguese AC3 track, but it loads the DTS one. The AC3 doesn't show up at all in the track list.
Tried with the MPC-HC internal TS and it loads it.
If you need a sample, how can I make one?
General
ID : 1
Complete name : G:\BDMV\STREAM\00000.m2ts
Format : BDAV
Format/Info : Blu-ray Video
File size : 7.92 GiB
Duration : 1h 21mn
Overall bit rate : 14.0 Mbps
Maximum Overall bit rate : 35.5 Mbps
Video
ID : 4113 (0x1011)
Menu ID : 1 (0x1)
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : 27
Duration : 1h 21mn
Bit rate mode : Variable
Bit rate : 11.3 Mbps
Maximum bit rate : 18.0 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.227
Stream size : 6.52 GiB (82%)
Writing library : x264 core 104 r1683 62997d6
Encoding settings : cabac=1 / ref=4 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=9 / psy=1 / psy_rd=1.00:0.25 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2
/ 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-4 / threads=6 / sliced_threads=0 / slices=4 / nr=0 / decimate=1 / interlaced=0 / constrained_intra=0 / bframes=3
/ b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=3 / weightb=1 / open_gop=2 / weightp=0 / keyint=24 / keyint_min=2 / scenecut=40 / intra_refresh=0 / rc_lookahead=24 / rc=2pass / mbtree=1
/ bitrate=11270 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / vbv_maxrate=18000 / vbv_bufsize=18000 / ip_ratio=1.40 / aq=1:1.00 / nal_hrd=vbr
Audio #1
ID : 4352 (0x1100)
Menu ID : 1 (0x1)
Format : AC-3
Format/Info : Audio Coding 3
Codec ID : 129
Duration : 1h 21mn
Bit rate : 384 Kbps
Channel(s) : 5 channels
Sampling rate : 48.0 KHz
Stream size : 223 MiB (3%)
Language : Portuguese
Audio #2
ID : 4353 (0x1101)
Menu ID : 1 (0x1)
Format : DTS
Format/Info : Digital Theater Systems
Format profile : ES
Codec ID : 130
Duration : 1h 21mn
Bit rate mode : Constant
Bit rate : 1 510 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 24 bits
Video delay : 11ms
Stream size : 875 MiB (11%)
Language : English
Text
ID : 4608 (0x1200)
Menu ID : 1 (0x1)
Format : PGS
Codec ID : 144
Language : Portuguese
Thanks
Bat
nevcairiel
26th April 2011, 15:32
Download http://research.m1stereo.tv/ffmpeg/snapshots/ffmpeg-20110426-1da254b.zip
in the bin directory, there is ffprobe, run that on the file, and see if it detects the stream.
tschi
26th April 2011, 16:40
Thanks for the new version. :)
I have a issue when I switch the audio track using shortcut key. Mpchc (snv3052) crash with the message "Unspecified error" ("erreur non spécifiée" in french). It works using a mouse and the menu or key + internal splitter. It works for the subtitles.
It would be great if Lavfsplitter supports internal mpchc shortcut key or includes his own shorcut key (eg: to be use with potplayer :rolleyes:) to switch stream. I use a remote on my htpc and send shortcut in order to control player (I guess I am not the only one ?)
Thank you
jj666
26th April 2011, 16:55
Nev, I've got this Bluray
Certainly isn't the original disk, re-encoded and with lossy audio. How did you mux the file?
I've not experienced any audio stream detecting issues here with the newer version.
Cheers,
-jj-
nevcairiel
26th April 2011, 16:56
I have a issue when I switch the audio track using shortcut key. Mpchc (snv3052) crash with the message "Unspecified error
The only time i've seen that error was with AC3Filter, get rid of that and it should work.
tschi
26th April 2011, 17:34
The only time i've seen that error was with AC3Filter, get rid of that and it should work.
You are right, the audio is postprocessed with AC3Filter and decoded by Lavf audio, thank you.
Is it a mpchc issue ? I guess I could do the same processing with ffdshow audio :(
However, a shortcut key would be pleasant for using lavfsplitter and potplayer :rolleyes:
nevcairiel
26th April 2011, 17:36
However, a shortcut key would be pleasant for using lavfsplitter and potplayer :rolleyes:
I have no plans to do this. Its the players responsibility to offer this, you can request it from them. :)
tschi
26th April 2011, 17:53
Ok, I can try to ask them..
But I tried several to subscribe to their korean forum with any sucess :mad:
What should I ask ? :o
Be able to trasmit audio change (and subtitle) commands to an external splitter using a shortcut ?
hoborg
26th April 2011, 19:14
Thanks for .24!
I found that LAVS splitter cannot detect VP7 video streams. Here is the sample (https://rapidshare.com/files/459318654/vp7_sample.zip).
nevcairiel
26th April 2011, 19:23
VP7 is not supported, and unless ffmpeg some day supports it, it won't be.
hoborg
26th April 2011, 19:25
VP7 is not supported, and unless ffmpeg some day supports it, it won't be.
So it is not subtype issue?
even old default OS avi splitter support VP7 in AVI.
nevcairiel
26th April 2011, 19:36
even old default OS avi splitter support VP7 in AVI.
But this is a MKV. :)
What decoder can actually decode them? There isn't much fun in trying without one.
clsid
26th April 2011, 19:44
There is just one afaik. The official On2 VP7 decoder.
hoborg
26th April 2011, 19:48
But this is a MKV. :)
What decoder can actually decode them? There isn't much fun in trying without one.
Yes, MKV created from original AVI in MKV merge - becouse of simple split.
VP7 can be downlad here (http://www.free-codecs.com/download/VP7.htm).
nevcairiel
26th April 2011, 19:49
Yes, MKV created from original AVI in MKV merge - becouse of simple split.
VP7 can be downlad here (http://www.free-codecs.com/download/VP7.htm).
Hey, simpsons. :)
PS:
I case it wasn't obvious, that means i fixed it. It'll now even try to demux unknown tracks, as long as a FourCC is specified in the container.
BatKnight
26th April 2011, 20:27
Download http://research.m1stereo.tv/ffmpeg/snapshots/ffmpeg-20110426-1da254b.zip
in the bin directory, there is ffprobe, run that on the file, and see if it detects the stream.
It does, but with 0 channels, strange...
Does this mean that it's a ffmpeg bug? Does MPC-HC internal TS use ffmpeg?
Input #0, mpegts, from 'z:\bdmv\stream\00000.m2ts':
Duration: 01:21:03.44, start: 599.958311, bitrate: 13992 kb/s
Program 1
Stream #0.0[0x1011]: Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 23.98 fps, 23.98
tbr, 90k tbn, 47.95 tbc
Stream #0.1[0x1100](por): Audio: ac3, 0 channels, s16
Stream #0.2[0x1101](eng): Audio: dca (DTS), 48000 Hz, 5.1, s16, 1536 kb/s
Stream #0.3[0x1200](por): Subtitle: pgssub
Bat
nevcairiel
26th April 2011, 20:53
It does, but with 0 channels, strange...
Does this mean that it's a ffmpeg bug? Does MPC-HC internal TS use ffmpeg?
Stream #0.1[0x1100](por): Audio: ac3, 0 channels, s16
I actually have some code that filters out broken streams that get reported with 0 channels, that'll probably have hit this one as well.
I can try to tune the code to try to catch really broken streams .. or just show them and let the users figure out that they don't work. ;)
nevcairiel
26th April 2011, 21:50
http://files.1f0.de/lavf/LAVFilters-0.24-4-gfc2264b.zip
@BatKnight
Try this build. I'm not sure how well decoding will work, the file must be broken somehow or channel detection wouldn't fail.
@hoborg:
This should also work with your vp7 file.
Andy o
27th April 2011, 07:01
Hi nev, I'm trying out your new splitter, but I've run into a weird issue. It could be the splitter or the way the mkv is muxed. Maybe madVR (.58), but it doesn't happen with the Haali or MPC-HC splitters. I'm getting like 4 dropped frames per second.
The problem is that it happens only with some mkvs (so far some anime muxed from blu-ray) AND the combination of LAVF Splitter (.24) and madVR. If I switch to another video renderer (tried EVR-CP or Sync) then it doesn't happen. Ditto if I switch to another splitter like I said above.
To add to my confusion, I made those mkvs with Makemkv 1.6.7. I remuxed one of them with MKVMerge and the issues were gone.
If it helps I ran the mkvinfo on them. If you have any ideas how to troubleshoot this, I'd be grateful.
Here are the txt files.
File name: mkvinfo.zip File size: 4.18 KB (http://www.fileserve.com/file/BCnyNCm)
There's 3 files. makemkv-bad is the one that shows the dropped frames. remux-mkvmerge-good is the same file, remuxed by mkvmerge that plays fine. For comparison I included another one, makemkv-good, also muxed by makemkv 1.6.7, but also runs smoothly. They're all AVC format, 24p.
nevcairiel
27th April 2011, 07:13
Can you check if maybe all broken files have TrueHD audio? Thats the only obvious difference in those two, mkvmerge writes different headers for TrueHD then MakeMKV does, and your makemkv-good has DTS audio.
Also, which audio decoder are you using? Can you try again with my LAV Audio Decoder?
Another thing, when using EVR-CP, please make sure that "Frame Time Correction" is OFF (press C), and see if it then drops frames as well - or if i was off all the time.
Andy o
27th April 2011, 07:16
dang, I was sure they were the same formats gotta double check everything. sorry bout that. Be right back.
nevcairiel
27th April 2011, 07:24
Another thing you can try is flipping the "Disable Audio Stream Parsing" option in the LAV Splitter Properties (Video won't have any effect, AVC1 in MKV does not get parsed)
I can probably try to rip a Blu-ray with TrueHD audio later with MakeMKV, and see if something funny happens.
I don't think its related to the video stream, because like i mentioned, AVC1 in MKV will just be output as is, it does not usually get touched at all.. unless, its one of those funny files that does not have B-Frames, then it might actually break .. but i have never seen one of those on a Blu-ray.
Can you download http://research.m1stereo.tv/ffmpeg/snapshots/ffmpeg-20110426-1da254b.zip, in the "bin" folder is ffprobe, and run this command:
ffprobe -loglevel debug PATH://to/file
And post the full output?
Andy o
27th April 2011, 08:18
Yeah, you're right, it was TrueHD titles. Disabling audio stream parsing doesn't fix it. I'll run ffprobe and let you know more.
nevcairiel
27th April 2011, 08:21
Thats at least something, going to look for a AVC1/TrueHD disc later and run MakeMKV over it.
Andy o
27th April 2011, 08:37
OK, this is the bad file:
ffprobe version git-N-29373-g1da254b, Copyright (c) 2007-2011 the FFmpeg develop
ers
built on Apr 26 2011 02:28:38 with gcc 4.5.0 20100414 (Fedora MinGW 4.5.0-1.fc
14)
configuration: --prefix=/var/www/users/research/ffmpeg/snapshots/build --arch=
x86 --target-os=mingw32 --cross-prefix=i686-pc-mingw32- --cc='ccache i686-pc-min
gw32-gcc' --enable-w32threads --enable-memalign-hack --enable-runtime-cpudetect
--enable-cross-compile --enable-static --disable-shared --extra-libs='-lws2_32 -
lwinmm' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snapshots/buil
d/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/snapshots/b
uild/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-version3 --enable-n
onfree --enable-libx264 --enable-libspeex --enable-libtheora --enable-libvorbis
--enable-libfaac --enable-libxvid --enable-libopencore-amrnb --enable-libopencor
e-amrwb --enable-libmp3lame --enable-libvpx --disable-decoder=libvpx
libavutil 51. 0. 0 / 51. 0. 0
libavcodec 53. 1. 0 / 53. 1. 0
libavformat 53. 0. 3 / 53. 0. 3
libavdevice 53. 0. 0 / 53. 0. 0
libavfilter 2. 0. 0 / 2. 0. 0
libswscale 0. 13. 0 / 0. 13. 0
[NULL @ 0x1562c70] Format matroska,webm probed with size=2048 and score=100
st:0 removing common factor 1000000 from timebase
st:1 removing common factor 1000000 from timebase
st:2 removing common factor 1000000 from timebase
st:3 removing common factor 1000000 from timebase
st:4 removing common factor 1000000 from timebase
st:5 removing common factor 1000000 from timebase
[h264 @ 0x2f17000] Unsupported bit depth: 0
[h264 @ 0x2f17000] no picture
[h264 @ 0x2f17000] no picture
[h264 @ 0x2f17000] no picture
[h264 @ 0x2f17000] no picture
[matroska,webm @ 0x1562c70] Probe buffer size limit 5000000 reached
[matroska,webm @ 0x1562c70] Estimating duration from bitrate, this may be inaccu
rate
Input #0, matroska,webm, from 'title00.mkv':
Duration: 00:25:09.00, start: 0.000000, bitrate: N/A
Chapter #0.0: start 0.000000, end 60.560489
Metadata:
title : Chapter 00
Chapter #0.1: start 60.560489, end 150.650489
Metadata:
title : Chapter 01
Chapter #0.2: start 150.650489, end 553.553000
Metadata:
title : Chapter 02
Chapter #0.3: start 553.553000, end 1411.910489
Metadata:
title : Chapter 03
Chapter #0.4: start 1411.910489, end 1411.910489
Metadata:
title : Chapter 04
Stream #0.0(eng), 45, 1/1000: Video: h264 (High), yuv420p, 1920x1080 [PAR 1:
1 DAR 16:9], 1001/48000, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0.1(jpn), 2304, 1/1000: Audio: truehd, 48000 Hz, 5.1, s32 (default)
Metadata:
title : 5.1
Stream #0.2(eng), 0, 1/1000: Subtitle: pgssub (default)
Stream #0.3(fra), 0, 1/1000: Subtitle: pgssub
Stream #0.4(eng), 2, 1/1000: Subtitle: pgssub
Stream #0.5(fra), 2, 1/1000: Subtitle: pgssub
This is the good remuxed file:
ffprobe version git-N-29373-g1da254b, Copyright (c) 2007-2011 the FFmpeg developers
built on Apr 26 2011 02:28:38 with gcc 4.5.0 20100414 (Fedora MinGW 4.5.0-1.fc14)
configuration: --prefix=/var/www/users/research/ffmpeg/snapshots/build --arch=x86 --target-os=ming
w32 --cross-prefix=i686-pc-mingw32- --cc='ccache i686-pc-mingw32-gcc' --enable-w32threads --enable-m
emalign-hack --enable-runtime-cpudetect --enable-cross-compile --enable-static --disable-shared --ex
tra-libs='-lws2_32 -lwinmm' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snapshots/buil
d/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/snapshots/build/lib' --enable-b
zlib --enable-zlib --enable-gpl --enable-version3 --enable-nonfree --enable-libx264 --enable-libspee
x --enable-libtheora --enable-libvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libmp3lame --enable-libvpx --disable-decoder=libvpx
libavutil 51. 0. 0 / 51. 0. 0
libavcodec 53. 1. 0 / 53. 1. 0
libavformat 53. 0. 3 / 53. 0. 3
libavdevice 53. 0. 0 / 53. 0. 0
libavfilter 2. 0. 0 / 2. 0. 0
libswscale 0. 13. 0 / 0. 13. 0
[NULL @ 0x32c70] Format matroska,webm probed with size=2048 and score=100
st:0 removing common factor 1000000 from timebase
st:1 removing common factor 1000000 from timebase
st:2 removing common factor 1000000 from timebase
st:3 removing common factor 1000000 from timebase
st:4 removing common factor 1000000 from timebase
st:5 removing common factor 1000000 from timebase
[h264 @ 0x3e00050] Unsupported bit depth: 0
[h264 @ 0x3e00050] no picture
[h264 @ 0x3e00050] no picture
[h264 @ 0x3e00050] no picture
[h264 @ 0x3e00050] no picture
[matroska,webm @ 0x32c70] Probe buffer size limit 5000000 reached
[matroska,webm @ 0x32c70] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from 'title00.mkv':
Duration: 00:25:09.00, start: 0.000000, bitrate: N/A
Chapter #0.0: start 0.000000, end 60.560489
Metadata:
title : Chapter 00
Chapter #0.1: start 60.560489, end 150.650489
Metadata:
title : Chapter 01
Chapter #0.2: start 150.650489, end 553.553000
Metadata:
title : Chapter 02
Chapter #0.3: start 553.553000, end 1411.910489
Metadata:
title : Chapter 03
Chapter #0.4: start 1411.910489, end 1411.910489
Metadata:
title : Chapter 04
Stream #0.0(eng), 46, 1/1000: Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 1001/48
000, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0.1(jpn), 2252, 1/1000: Audio: truehd, 48000 Hz, 5.1, s32 (default)
Metadata:
title : 5.1
Stream #0.2(eng), 0, 1/1000: Subtitle: pgssub (default)
Stream #0.3(fre), 0, 1/1000: Subtitle: pgssub
Stream #0.4(eng), 0, 1/1000: Subtitle: pgssub
Stream #0.5(fre), 0, 1/1000: Subtitle: pgssub
nevcairiel
27th April 2011, 08:44
Too bad, no obvious things stick out. Guess i'll have to rip a disc and see if i can reproduce the problem.
Which decoders are you using?
Andy o
27th April 2011, 08:56
I'm using ffdshow, forgot to mention, for bitstreaming audio and the multithreaded one for H.264. Thanks for the help.
nevcairiel
27th April 2011, 09:01
One last test: Can you turn bitstreaming for TrueHD off, and see if it still happens?
Just trying to figure out how to reliably reproduce it.
Andy o
27th April 2011, 09:18
Yes, when turning off bitstreaming and decoding the TrueHD audio, it doesn't happen and all is smooth. I'm using an ATI 5770 w/11.4 preview drivers, and the Realtek 2.55 HDMI driver.
nevcairiel
27th April 2011, 09:20
Thanks, i'll have a look later when i have access to my BDs, then.
I think i might have an idea, though. Some idiot request over on the MakeMKV forums that you can keep the TrueHD/AC3 interleaving when muxing it into MKV. This is a *terrible* idea. They are separate streams, and should be separated in the MKV. Its a bad design in mpeg-ts to begin with!
If this "feature" actually made its way into MakeMKV, i don't know. But i think it would neatly explain the problem if it did.
One last thing you could do is run MediaInfo on that file (in text mode), and post the "bad" and remuxed "good" one, which would confirm or deny this theory.
Andy o
27th April 2011, 10:15
I don't think it does as of now, but at the end Mike did say he was gonna implement it. MediaInfo tells me my TrueHD mkvs only have the TrueHD audio. With the TrueHD m2ts it says TrueHD/Core.
Also, I was under the impression that mkvmerge could do it (IIRC eac3to can get the interleaved track)
hoborg
27th April 2011, 11:12
http://files.1f0.de/lavf/LAVFilters-0.24-4-gfc2264b.zip
@hoborg:
This should also work with your vp7 file.
Of course it is working, as always :)
:thanks:
jj666
27th April 2011, 11:24
I don't think it does as of now, but at the end Mike did say he was gonna implement it. MediaInfo tells me my TrueHD mkvs only have the TrueHD audio. With the TrueHD m2ts it says TrueHD/Core.
Also, I was under the impression that mkvmerge could do it (IIRC eac3to can get the interleaved track)
MKVMERGE will not mux TrueHD/Core, it just keeps the HD audio stream. Latest MAKEMKV will mux two streams, one HD audio and one AC3 core. I noticed this yesterday when doing some beta testing for my media player.
For me, if I was using MKV (which I'm not :-)), a FLAC solution for the audio (via EAC3TO) would make more sense, at the same time as making the audio, at least you know the video streams etc are ok via EAC3TO.
Cheers,
-jj-
Andy o
27th April 2011, 11:28
Makemkv will mux it in separate tracks, that's what you mean, right? I don't think it's just the latest though, it's been doing it for a while IIRC. BTW, 1.6.8 has just been released in the past couple of days, did you mean that one, or 1.6.7?
jj666
27th April 2011, 11:37
Yah, 1.6.8 - it creates two separate tracks which would be the correct (although not to Blu-ray specification) way, like Nev mentioned. Like you said, I think it always does this if you selected "both" tracks.
Cheers,
-jj-
nevcairiel
27th April 2011, 12:22
I will test with 1.6.7, as that seems to also be what you used to convert your discs. If i can reproduce the problem, i can probably fix it too. I have a feeling that it could also be something in ffdshow, but i'll run all tests later.
SamuriHL
27th April 2011, 13:29
MakeMKV does NOT combine the TrueHD/ac3 tracks. It was requested (with a valid reason more or less) as an option but to date hasn't been implemented. Personally I just rip them as separate tracks as they should be. Nonetheless, they are interleaved on BD's which is what people were asking for. I haven't had any problems with TrueHD in MKV's made with MakeMKV on either of my machines, however. I'm not at home today else I'd post info on some of the ones I've made that work fine. I also use ffdshow for bitstreaming and madVR for rendering. So, if this was a generic issue one would think I'd have run into it by now, as well.
BatKnight
27th April 2011, 13:57
http://files.1f0.de/lavf/LAVFilters-0.24-4-gfc2264b.zip
@BatKnight
Try this build. I'm not sure how well decoding will work, the file must be broken somehow or channel detection wouldn't fail.
It didn't work. Still doesn't detect the AC3 track.
I could cut a piece of the the M2TS file and upload it for you to test it, if you tell me how can I cut a smaller part of it, or what software should I use to do it.
How is your splitter different from MPC-HC's internal TS? Because with it, it detects this AC3 track and plays nice.
Here's the ffprobe, with loglevel debug
ffprobe version git-N-29373-g1da254b, Copyright (c) 2007-2011 the FFmpeg developers
built on Apr 26 2011 02:28:38 with gcc 4.5.0 20100414 (Fedora MinGW 4.5.0-1.fc14)
configuration: --prefix=/var/www/users/research/ffmpeg/snapshots/build --arch=x86 --target-os=mingw32
--cross-prefix=i686-pc-mingw32- --cc='ccache i686-pc-mingw32-gcc' --enable-w32threads --enable-memalign-hack
--enable-runtime-cpudetect --enable-cross-compile --enable-static --disable-shared --extra-libs='-lws2_32 -lwinmm'
--extra-cflags='--static -I/var/www/users/research/ffmpeg/snapshots/build/include'
--extra-ldflags='-static -L/var/www/users/research/ffmpeg/snapshots/build/lib' --enable-bzlib
--enable-zlib --enable-gpl --enable-version3 --enable-nonfree --enable-libx264 --enable-libspeex
--enable-libtheora --enable-libvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libmp3lame --enable-libvpx --disable-decoder=libvpx
libavutil 51. 0. 0 / 51. 0. 0
libavcodec 53. 1. 0 / 53. 1. 0
libavformat 53. 0. 3 / 53. 0. 3
libavdevice 53. 0. 0 / 53. 0. 0
libavfilter 2. 0. 0 / 2. 0. 0
libswscale 0. 13. 0 / 0. 13. 0
[NULL @ 0x1532ce0] Format mpegts probed with size=2048 and score=100
[mpegts @ 0x1532ce0] stream=0 stream_type=1b pid=1011 prog_reg_desc=HDMV
[mpegts @ 0x1532ce0] stream=1 stream_type=81 pid=1100 prog_reg_desc=HDMV
[mpegts @ 0x1532ce0] stream=2 stream_type=82 pid=1101 prog_reg_desc=HDMV
[mpegts @ 0x1532ce0] stream=3 stream_type=90 pid=1200 prog_reg_desc=HDMV
[h264 @ 0x153b470] Unsupported bit depth: 0
[h264 @ 0x153b470] no picture
[dca @ 0x2dd2a10] Stream with high frequencies VQ coding
[h264 @ 0x153b470] no picture
[mpegts @ 0x1532ce0] Probe buffer size limit 5000000 reached
[NULL @ 0x2dd22c0] start time is not set in av_estimate_timings_from_pts
[NULL @ 0x1539f80] start time is not set in av_estimate_timings_from_pts
Input #0, mpegts, from 'g:\BDMV\STREAM\00000.m2ts':
Duration: 01:32:25.42, start: 599.958311, bitrate: 12276 kb/s
Program 1
Stream #0.0[0x1011], 95, 1/90000: Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 1001/48000, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0.1[0x1100](por), 0, 1/90000: Audio: ac3, 0 channels, s16
Stream #0.2[0x1101](eng), 366, 1/90000: Audio: dca (DTS), 48000 Hz, 5.1, s16, 1536 kb/s
Stream #0.3[0x1200](por), 0, 1/90000: Subtitle: pgssub
Thanks for all your time invested in this.
Bat
nevcairiel
27th April 2011, 14:35
There is no reason the above build should not detect the stream. Before there was a check to filter out streams with 0 channels, but i removed that. I figure it might not decode, because decoders dont like the notion of 0 channels - but huh.
I suppose tsMuxer can split files, i hope it doesn't fix it along the way. :p
If you have access to mingw32 or cygwin, or any real linux system, they typically include the "split" command which is just a dumb file splitter, which should do the job too.
Also, LAV Splitter has nothing in common with the MPC-HC splitter.
Midzuki
27th April 2011, 15:49
<Semi-OT>
I don't think its related to the video stream, because like i mentioned, AVC1 in MKV will just be output as is, it does not usually get touched at all.. unless, its one of those funny files that does not have B-Frames, then it might actually break ..
...
Reminds me of the MPEG-2 decoders in (a very-old revision of) ffdshow that didn't like MPEG-2 video with zer0 B-frames — this made the b0rked decoders lose synch with the audio stream :—/
</Semi-OT>
BatKnight
27th April 2011, 15:51
There is no reason the above build should not detect the stream. Before there was a check to filter out streams with 0 channels, but i removed that. I figure it might not decode, because decoders dont like the notion of 0 channels - but huh.
I suppose tsMuxer can split files, i hope it doesn't fix it along the way. :p
If you have access to mingw32 or cygwin, or any real linux system, they typically include the "split" command which is just a dumb file splitter, which should do the job too.
Also, LAV Splitter has nothing in common with the MPC-HC splitter.
tsMuxer wouldn't work because it states that it has an invalid track and ignores the AC3 track.
I used the split command to split the M2TS to smaller chunks of 15MB and tried to play one of them (not the first chunk), and the AC3 track works and ffprobe recognizes it as having 5.1 channels.
But then I played the first splitted chunk, and no AC3 track. Only the following chunks play with the AC3 on it.
I uploaded the first chunk: http://www.megaupload.com/?d=W0F0RK94
Thanks,
Bat
PS: I don't expect you to be able to fix every broken track. This is a custom made Bluray, not a commercial one. FYI, this is a Bluray of Toy Story with the English DTS track and the Portuguese AC3 tracked ripped from the DVD, that was then muxed to a Bluray compliant format, fitted on a DVD9 size. It just makes it easier for the kid to watch in HD and with Portuguese (our main language) audio.
CruNcher
27th April 2011, 16:03
Nev i don't get *.mov to be parsed via File Source Async (Lav Splitter) it always fallsback to the MPC Mp4 Splitter (low merrit) *.mp4 *.ts *.m2ts *.avi *.mkv works (tested so far)
nevcairiel
27th April 2011, 16:21
I used the split command to split the M2TS to smaller chunks of 15MB and tried to play one of them (not the first chunk), and the AC3 track works and ffprobe recognizes it as having 5.1 channels.
But then I played the first splitted chunk, and no AC3 track. Only the following chunks play with the AC3 on it.
The AC3 stream does show for me, but it doesn't play. It doesn't show with the MPC-HC splitter either. If you play the full file, do the first ~20 seconds actually have audio on that ac3 stream?
It doesn't seem to demux any packages for that stream.
I think thats actually the problem. The MPEG-TS demuxer is limited to reading a certain amount of bytes (5.000.000 to be exact, just short of 5MB), and if it doesn't find all the codec information in that time, well, it'll just show like this.
CruNcher
27th April 2011, 17:04
Hmm it neither works in Graphstudio connection brakes File Source (Async)->Lav Splitter for *.mov doesn't seem to work
Yep works only via Lav Splitter Source :(
nevcairiel
27th April 2011, 17:16
Yes, when turning off bitstreaming and decoding the TrueHD audio, it doesn't happen and all is smooth. I'm using an ATI 5770 w/11.4 preview drivers, and the Realtek 2.55 HDMI driver.
I couldn't reproduce the problem yet -- are you using ReClock, or the default renderer? (I was using ReClock)
Edit:
Removing ReClock seems to show some timing differences, i'll check it out.
Kurtnoise
27th April 2011, 18:10
Nev i don't get *.mov to be parsed via File Source Async (Lav Splitter) it always fallsback to the MPC Mp4 Splitter (low merrit) *.mp4 *.ts *.m2ts *.avi *.mkv works (tested so far)
worksforme...
CruNcher
27th April 2011, 18:14
worksforme...
Big ouch then XP ? with the official build ?
Here is what happens for me (im tapping in the dark)
http://img848.imageshack.us/img848/2470/ouchj.png
Kurtnoise
27th April 2011, 18:16
Se7en 64bits - build from the current tree, compiled 10 mins ago...
nevcairiel
27th April 2011, 18:25
Big ouch then XP ? with the official build ?
Here is what happens for me (im tapping in the dark)
Yeah, because the splitter cares what OS its running on, oh wait.
More likely you managed to turn mp4 in the settings off. :P
hoborg
27th April 2011, 18:26
MOVs working for me too.
CruNcher
27th April 2011, 18:28
Yeah, because the splitter cares what OS its running on, oh wait.
More likely you managed to turn mp4 in the settings off. :P
I posted that *.mp4 works fine didn't i only *.mov fails so far for me but seeing more reports that it works fine for others makes me very nervous indeed ;)
And sorry but i learned to take everything into account as crazy as it might sound when debugging stuff ;)
Though failing also the connection in Direct Graph Connection Mode that is hardly explainable (as virtually nothing 3rd party can influence from outside the connection) :(
Andy o
27th April 2011, 18:55
I couldn't reproduce the problem yet -- are you using ReClock, or the default renderer? (I was using ReClock)
Edit:
Removing ReClock seems to show some timing differences, i'll check it out.
I wasn't using ReClock and I haven't changed the audio renderer. I tried with ReClock, and it got fixed.
VipZ
27th April 2011, 19:00
Yes, when turning off bitstreaming and decoding the TrueHD audio, it doesn't happen and all is smooth. I'm using an ATI 5770 w/11.4 preview drivers, and the Realtek 2.55 HDMI driver.
Out of interest, have you tried the ATI HDMI drivers? I thought they where the best to use now days. Correct me if I am wrong here though :)
I have no issues bitstreaming anything that I come across over default direct sound renderer.
Andy o
27th April 2011, 19:14
I'm using madVR though. With EVR-CP, you have to disable time frame correction (i.e. not the default settings) to reproduce a similar problem. Also, it only happens with mkvs with TrueHD audio created with makemkv. I remuxed with mkvmerge and there was no issue.
Re: the ATI driver, it's probably better if you use TMT5 which I understand doesn't support the Realtek one. But the Realtek has some advantages to me, and I don't use TMT5. For one, you don't have to disable sounds on Media Center (or alternatively, set your Windows mixer to stereo). Also, after pausing/seeking/jumping, sound is much quicker to resume with Realtek than with ATI, when you're bitstreaming.
VipZ
27th April 2011, 19:19
Hmm, I think I should try the RealTek drivers out.
nevcairiel
27th April 2011, 19:22
I found the root cause of these issues, MakeMKV uses a way to timestamp and pack the frames thats really flaky, in combination with TrueHDs really small frame size (0.8333ms), the timestamps get confused all the time, at least the way ffmpeg reads them.
Sadly, i could not hear/see a really big difference. The only thing i saw was the EVR-CP stats graph go all funny on me.
Anyhow, here is a build with a potential fix, which should not break anything else *crosses-fingers*
http://files.1f0.de/lavf/LAVFilters-0.24-6-g308e2fe.zip
I should really get a new mkv demuxer, stumbling around ffmpeg bugs/short-comings all the time..
Now i have watched my mkv of the ghostbusters bluray nearly twice while debugging, leaving it running while coding... :p
PS:
I still recommend using ReClock, even when bitstreaming. :)
Even when not using its main feature of adapting the audio to the video, its still a good audio renderer. :D
SamuriHL
27th April 2011, 19:38
It must only affect the realtek driver cause I don't have any issues with the AMD driver. I also don't have reclock installed anymore cause it breaks TMT5. Good times.
nevcairiel
27th April 2011, 19:40
You know, you can install ReClock without making it overwrite the TMT audio driver, yes? :)
Andy o
27th April 2011, 19:45
I tried the new ATI driver (11.4 is out since yesterday), which is the same as the one in 11.4 preview, and it was the same. It's weird that I'm in a minority that's having issues that others aren't having (the trouble with HAM decoding comes to mind too. Only reason that comes to mind is my hardware somehow. Chipset is old-ish (G35), and this mobo has always given me trouble (though unrelated, like sleep issues).
SamuriHL
27th April 2011, 19:47
You know, you can install ReClock without making it overwrite the TMT audio driver, yes? :)
Of course I know that. :) However, it's also not of much value to me since I bitstream all my audio. Kinda difficult for ReClock to do its magic when you tie its hands like that. :)
nevcairiel
27th April 2011, 19:49
I tried the new ATI driver (11.4 is out since yesterday), which is the same as the one in 11.4 preview, and it was the same. It's weird that I'm in a minority that's having issues that others aren't having (the trouble with HAM decoding comes to mind too. Only reason that comes to mind is my hardware somehow. Chipset is old-ish (G35), and this mobo has always given me trouble (though unrelated, like sleep issues).
Pssh, go try the new version of LAV Splitter and see if it works. :P
http://files.1f0.de/lavf/LAVFilters-0.24-6-g308e2fe.zip
SamuriHL
27th April 2011, 19:49
I tried the new ATI driver (11.4 is out since yesterday), which is the same as the one in 11.4 preview, and it was the same. It's weird that I'm in a minority that's having issues that others aren't having (the trouble with HAM decoding comes to mind too. Only reason that comes to mind is my hardware somehow. Chipset is old-ish (G35), and this mobo has always given me trouble (though unrelated, like sleep issues).
Damn, it's out now? Guess I need to get updating. I've been using the preview on my main HTPC. I never installed it on my laptop as this thing is REALLY picky. Don't feel bad about HAM issues. Since I switched to using MC16 I can't get HAM mode to work on my main HTPC without a nasty green line that someone in the madVR thread reported. I traced it back to using ffdshow raw for subtitles. Pity. Good thing that machine doesn't need GPU decoding. :) As for the TrueHD issue, it may be that I get it, too, but, didn't notice? Nev said he didn't hear a difference. I haven't watched too many TrueHD MKV's but I know I've tested at least one or two.
Andy o
27th April 2011, 19:49
http://files.1f0.de/lavf/LAVFilters-0.24-6-g308e2fe.zip
I should really get a new mkv demuxer, stumbling around ffmpeg bugs/short-comings all the time..
Now i have watched my mkv of the ghostbusters bluray nearly twice while debugging, leaving it running while coding... :p
PS:
I still recommend using ReClock, even when bitstreaming. :)
Even when not using its main feature of adapting the audio to the video, its still a good audio renderer. :D
Thanks nev, that fixed it. I also always use ReClock, but I always take it out of the equation when testing stuff. I had forgotten to enable it again when I stumbled on this.
SamuriHL
27th April 2011, 19:52
Hey Nev, quick question....when you release an official build...does it then make sense to up the version in GIT since all changes after the official release will be in the next official release? So that you're building up the next release with all the changes? Sorry if I'm not making sense. I just think since all fixes since the official release are technically for the next version it makes sense to bump it up in source.
Andy o
27th April 2011, 19:54
Of course I know that. :) However, it's also not of much value to me since I bitstream all my audio. Kinda difficult for ReClock to do its magic when you tie its hands like that. :)
To add what nev pointed out above, ReClock has saved us from some bugs, even when bitstreaming. IIRC ReClock re-enables bitstreaming with TMT3 and the Realtek driver, as well.
BTW, what about LPCM files?
nevcairiel
27th April 2011, 19:55
Hey Nev, quick question....when you release an official build...does it then make sense to up the version in GIT since all changes after the official release will be in the next official release? So that you're building up the next release with all the changes? Sorry if I'm not making sense. I just think since all fixes since the official release are technically for the next version it makes sense to bump it up in source.
You mean the version number shown in the dialog?
Git itself really doesnt have a version, the numbers in these file names are basically constructed like this:
0.24-6-g308e2fe
last tag (0.24), number of commits since then (6), hash tag of the latest commit (308e2fe).
BTW, what about LPCM files?
Whats with LPCM?
They should behave like any file that you actually decoded .. as they are just PCM in some special format. LAV Audio can "decode" all of them losslessly into a PCM format the renderer understands.
SamuriHL
27th April 2011, 19:56
To add what nev pointed out above, ReClock has saved us from some bugs, even when bitstreaming. IIRC ReClock re-enables bitstreaming with TMT3 and the Realtek driver, as well.
Oh no question. I agree there are some benefits to it even when bitstreaming in some environments. My filter chain is already complex enough without adding to it, however. :D I may revisit that again now that I finally have everything working properly in MC16.
SamuriHL
27th April 2011, 19:59
You mean the version number shown in the dialog?
Git itself really doesnt have a version, the numbers in these file names are basically constructed like this:
0.24-6-g308e2fe
last tag (0.24), number of commits since then (6), hash tag of the latest commit (308e2fe).
Yea, I mean the version number as in 0.24. Since all changes you're making are going into 0.25 doesn't it make sense to bump that up to the next version once you release an official build? I understand the # of commits and hash tag and agree that rocks. Just wondering about the actual build number. It's a very minor point. :) Just wondering if it made sense to bump it up after a release.
SamuriHL
27th April 2011, 20:01
I think he's asking me about LPCM and ReClock. Yes, that's one of the major benefits and why I wanted to use it with TMT. That forces exclusive mode. With LAVF we don't need to worry about that as it already can "bitstream" PCM anyway depending on the audio decoder you use.
Andy o
27th April 2011, 20:04
Damn, it's out now? Guess I need to get updating. I've been using the preview on my main HTPC. I never installed it on my laptop as this thing is REALLY picky. Don't feel bad about HAM issues. Since I switched to using MC16 I can't get HAM mode to work on my main HTPC without a nasty green line that someone in the madVR thread reported. I traced it back to using ffdshow raw for subtitles. Pity. Good thing that machine doesn't need GPU decoding. :) As for the TrueHD issue, it may be that I get it, too, but, didn't notice? Nev said he didn't hear a difference. I haven't watched too many TrueHD MKV's but I know I've tested at least one or two.
It's not "hear" though. It's dropped frames or stuttery video. And it happens with TrueHD mkvs muxed with makemkv (at least up to 1.6.7).
I got the green line when testing with PotPlayer, but the trouble I had was the dropped frames. I reported that newer madVR versions didn't have this problem in the new exclusive mode, but just barely. I can still see the buffers drop dangerously, and have to up them to at least 6. Also in windowed mode it's still a mess, and also with content higher rate 1080/24p (59i, 30p).
I like HAM cause it saves my system around 10~15W. Not a lot money-wise, but I'm a stickler for efficiency :) It's mainly cause when using HAM, clocks get fixed to UVD settings (400/900 for the 5770) and voltage to lowest. When not using HAM my clocks are normal, and voltage increases too to the max.
Andy o
27th April 2011, 20:05
I think he's asking me about LPCM and ReClock. Yes, that's one of the major benefits and why I wanted to use it with TMT. That forces exclusive mode. With LAVF we don't need to worry about that as it already can "bitstream" PCM anyway depending on the audio decoder you use.
It can force exclusive mode, as well? Are you talking about the LAV audio decoder?
SamuriHL
27th April 2011, 20:08
It's not "hear" though. It's dropped frames or stuttery video. And it happens with TrueHD mkvs muxed with makemkv (at least up to 1.6.7).
I think you know I do all my MKV's with MakeMKV and can honestly say I've not run into this problem. That is very odd.
I got the green line when testing with PotPlayer, but the trouble I had was the dropped frames. I reported that newer madVR versions didn't have this problem in the new exclusive mode, but just barely. I can still see the buffers drop dangerously, and have to up them to at least 6. Also in windowed mode it's still a mess, and also with content higher rate 1080/24p (59i, 30p).
Fortunately (?!??!) my main HTPC where I want to use HAM mode doesn't have refresh rate, uhhh, issues. I get 60. That's it. :D The green line started when I switched to MC16 and unfortunately if I want subs I have to use the ffdshow raw video filter. Turning off HAM mode works fine.
I like HAM cause it saves my system around 10~15W. Not a lot money-wise, but I'm a stickler for efficiency :) It's mainly cause when using HAM, clocks get fixed to UVD settings (400/900 for the 5770) and voltage to lowest. When not using HAM my clocks are normal, and voltage increases too to the max.
Yea, I'm with you on that one. Given that I have a 5870 cranking in there, I'd much prefer it to handle the decoding vs my quad core. Still, it works without HAM so for now I'll be doing that until I can figure out a way to get rid of the green line.
SamuriHL
27th April 2011, 20:10
It can force exclusive mode, as well? Are you talking about the LAV audio decoder?
I don't know what the LAVF Audio Decoder does. I don't use it because I prefer bitstreaming. However, I know it won't downsample the audio, obviously. Nev, does it use exclusive mode? The reason we're asking is cause this helps with channel mapping IMMENSELY. By using exclusive mode, the receiver will switch the channels automagically from 5.1 to 7.1, etc.
Andy o
27th April 2011, 20:15
Ah, I'm confused... you said this:
With LAVF we don't need to worry about that as it already can "bitstream" PCM anyway depending on the audio decoder you use.
I took it as 'LAVF' being able to do exclusive mode without ReClock. The Realtek driver has some trouble with ReClock and exclusive mode. Even though that doesn't bother me as much, it would be nice if I could try another angle.
SamuriHL
27th April 2011, 20:16
Oh, no, sorry, I'm using ffdshow to bitstream. My bad for the confusion. I'm using LAVF Splitter to split it but that has no bearing on PCM in my configuration.
(That's what I meant by audio decoder)
SamuriHL
27th April 2011, 20:22
And I'm wrong about ffdshow. :mad: It's not using exclusive mode when playing PCM!! I thought it was. I'm testing it now on a 5.1 LPCM track and receiver is still showing 7.1. Yuck.
nevcairiel
27th April 2011, 20:23
I don't know what the LAVF Audio Decoder does. I don't use it because I prefer bitstreaming. However, I know it won't downsample the audio, obviously. Nev, does it use exclusive mode? The reason we're asking is cause this helps with channel mapping IMMENSELY. By using exclusive mode, the receiver will switch the channels automagically from 5.1 to 7.1, etc.
Thats nothing a decoder would do. Thats all the renderers doing, and ReClock is the only reliable WASAPI (=exclusive) renderer i know.
But even when using WASAPI, it doesn't magically switch output configurations - ReClock has an option to do this for you ("Set matching speaker configuration")
SamuriHL
27th April 2011, 20:25
Thats nothing a decoder would do. Thats all the renderers doing, and ReClock is the only reliable WASAPI (=exclusive) renderer i know.
But even when using WASAPI, it doesn't magically switch output configurations - ReClock has an option to do this for you.
I hate my life. :) I guess I'm going to have to add ReClock back into my configuration. Man oh man this filter chain is getting complicated. :)
Andy o
27th April 2011, 20:29
Thats all the renderers doingI was gonna say, but you did first and I wasn't 100% sure.
But even when using WASAPI, it doesn't magically switch output configurations - ReClock has an option to do this for you ("Set matching speaker configuration")
That option is redundant when using exclusive mode though. That option used to work with previous (Realtek only, IIRC) drivers for DirectSound output, but since the bitstream-capable drivers, both ATI and Realtek (and Nvidia) don't work, so that option is mostly superfluous right now. Don't know if it's the PAP or what, but James didn't show much hope that it could be fixed.
I would be happier if I could switch channels automatically while using DirectSound, though.
SamuriHL
27th April 2011, 20:32
Yup, exclusive mode is equivalent to "bitstreaming" PCM. So however many channels it contains, the receiver deals with it rather than the windows audio settings. In any case, I added ReClock back in, set it to ONLY be used in MC16, and indeed it works. I get PCM "bitstreaming" now. The 5.1 movie I was testing indeed shows 5.1 on the receiver. Hurray.
hoborg
27th April 2011, 20:54
Hi.
I hit some LAVF audio decoder issue, but i have no idea if the problem is on MPEG-2 demultiplexer or on LAVF side.
The situation - i use GB-PVR on my HTPC as PVR and my older recordings are in .MPG format. GB-PVR have build in usage of "MPEG-2 Demultiplexer" for MPG files. The problem is that when i try to seek, sound stop to work.
It can be easily reproduced in Graphstudio: here is the video sample (https://rapidshare.com/files/459487112/interlaced.zip))
http://www.volny.cz/hoborg/demultiplexer.png
It is working fine when LAVF splitter is in use...
nevcairiel
27th April 2011, 20:57
Does it work when you use another audio decoder?
hoborg
27th April 2011, 21:07
Does it work when you use another audio decoder?
Yes, FFDshow audio decoder (libavcodec) work just fine
CruNcher
27th April 2011, 22:02
I might have found a explanation for my problem could somebody show his properties window of quartz when he has File Source Async loaded with a .mov file :)
http://img715.imageshack.us/img715/5018/ouch3.png
Something looks wrong :(
PS: Fixed it adding back Media Type {E436EB83-524F-11CE-9F53-0020AF0BA770} now it opens again geez i wonder what did this change :(
BelowSky
27th April 2011, 23:51
I've 2 question about LAV filters future:
1- Any plans for integrating a subtitle filter in it?
2- More importantly, ignoring the special case LAV CUVID, is there any chance for a "LAV Video Decoder"?
Sorry to ask these questions, but your LAV splitter and audio decoder is so freaking awesome to the point that I couldn't resist the urge to ask about a video decoder with the same level of quality. So, excuse me please :)
Edit: Uh... and maybe put the answers of these questions in FAQs so people don't ask the same question again and again.
SamuriHL
28th April 2011, 00:08
1) Subtitles are already handled by LAVF Splitter. The video decoder and renderer are responsible for playing them.
2) Nev will have to answer that one, but, that's where 1) would belong, if he were to create one.
Andy o
28th April 2011, 00:43
ffdshow and mpc hc sub renderers have some bugs with some PGS subs though, I for one wouldn't mind an alternative sub renderer.
SamuriHL
28th April 2011, 01:02
It also doesn't work with vobsub from EVO's. So yea, I would like a separate sub renderer myself.
Andy o
28th April 2011, 01:50
Nev, I'm having another weird problem. The .24 official release works fine, and also the MPC-HC splitter, but not the latest build that you posted above. I have an old mkv with a DTS (legacy) track. This track is not played (no sound, but LAVF splitter does show it in MPC-HC filters dropdown menu). If I remux it with mkvmerge 4.7.0 it does work. It was muxed with an older version. Here is the ffprobe log:
ffprobe version git-N-29373-g1da254b, Copyright (c) 2007-2011 the FFmpeg developers
built on Apr 26 2011 02:28:38 with gcc 4.5.0 20100414 (Fedora MinGW 4.5.0-1.fc14)
configuration: --prefix=/var/www/users/research/ffmpeg/snapshots/build --arch=x86 --target-os=ming
w32 --cross-prefix=i686-pc-mingw32- --cc='ccache i686-pc-mingw32-gcc' --enable-w32threads --enable-m
emalign-hack --enable-runtime-cpudetect --enable-cross-compile --enable-static --disable-shared --ex
tra-libs='-lws2_32 -lwinmm' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snapshots/buil
d/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/snapshots/build/lib' --enable-b
zlib --enable-zlib --enable-gpl --enable-version3 --enable-nonfree --enable-libx264 --enable-libspee
x --enable-libtheora --enable-libvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libmp3lame --enable-libvpx --disable-decoder=libvpx
libavutil 51. 0. 0 / 51. 0. 0
libavcodec 53. 1. 0 / 53. 1. 0
libavformat 53. 0. 3 / 53. 0. 3
libavdevice 53. 0. 0 / 53. 0. 0
libavfilter 2. 0. 0 / 2. 0. 0
libswscale 0. 13. 0 / 0. 13. 0
[NULL @ 0x32c80] Format matroska,webm probed with size=2048 and score=100
st:0 removing common factor 1000000 from timebase
st:1 removing common factor 1000000 from timebase
st:2 removing common factor 1000000 from timebase
st:3 removing common factor 1000000 from timebase
[h264 @ 0x3ad10] Unsupported bit depth: 0
[h264 @ 0x3ad10] no picture
[dca @ 0x1764f80] Stream with high frequencies VQ coding
[h264 @ 0x3ad10] no picture
[matroska,webm @ 0x32c80] max_analyze_duration reached
[matroska,webm @ 0x32c80] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from 'time.mkv':
Duration: 01:38:24.42, start: 0.000000, bitrate: 1536 kb/s
Stream #0.0(jpn), 121, 1/1000: Video: h264 (High), yuv420p, 1920x1080, 1001/48000, PAR 1:1 DAR 1
6:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0.1(jpn), 502, 1/1000: Audio: dca (DTS), 48000 Hz, 5.1, s16, 1536 kb/s (default)
Metadata:
title : DTS 5.1 (1536kbps)
Stream #0.2(eng), 0, 1/1000: Subtitle: ass (default)
Stream #0.3(eng), 0, 1/1000: Subtitle: [0][0][0][0] / 0x0000
Stream #0.4, 0, 1/90000: Attachment: [0][0][0][0] / 0x0000
Metadata:
filename : absci.ttf
Stream #0.5, 0, 1/90000: Attachment: [0][0][0][0] / 0x0000
Metadata:
filename : Ace.ttf
Stream #0.6, 0, 1/90000: Attachment: [0][0][0][0] / 0x0000
Metadata:
filename : Agenda-MediumItalic.ttf
Stream #0.7, 0, 1/90000: Attachment: [0][0][0][0] / 0x0000
Metadata:
filename : Goulong.ttf
Stream #0.8, 0, 1/90000: Attachment: [0][0][0][0] / 0x0000
Metadata:
filename : linkin.ttf
Unsupported codec with id 94210 for input stream 3
Unsupported codec with id 98304 for input stream 4
Unsupported codec with id 98304 for input stream 5
Unsupported codec with id 98304 for input stream 6
Unsupported codec with id 98304 for input stream 7
Unsupported codec with id 98304 for input stream 8
nevcairiel
28th April 2011, 08:12
Nev, I'm having another weird problem. The .24 official release works fine, and also the MPC-HC splitter, but not the latest build that you posted above. I have an old mkv with a DTS (legacy) track. This track is not played (no sound, but LAVF splitter does show it in MPC-HC filters dropdown menu). If I remux it with mkvmerge 4.7.0 it does work. It was muxed with an older version.
Did i mention that MakeMKV sucks?
In any case, my change was so simple, it really shouldn't have hurt anything *cry* .. although, one thing i didn't think about..
I'll produce a new build, lets see if something useful happens.
1- Any plans for integrating a subtitle filter in it?
No.
Subtitles in the video decoder have quite some disadvantages - they should be applied after rendering, like EVR or madVR do it now in MPC-HC.
Plus, i really don't use subtitles..
2- More importantly, ignoring the special case LAV CUVID, is there any chance for a "LAV Video Decoder"?
Yes.
nevcairiel
28th April 2011, 08:30
I'll produce a new build, lets see if something useful happens.
@Andy O:
Can you try this? It should still work perfectly with the TrueHD files, and hopefully fix all other cases that got broken.
http://www.mediafire.com/?5l6gwxv3l7mf8v7
nevcairiel
28th April 2011, 08:50
Yes, FFDshow audio decoder (libavcodec) work just fine
I think i fixed it. LAV Audio was basically receiving one sample that contained half of the previous audio frame, and half of the next. Because it failed to decode this sample, it threw it away completely - of course the next one would be missing its first half again too, and so it never managed to decode again.
I'll have to further test my fix, but it looks good so far.
Virtual_ManPL
28th April 2011, 09:06
@ nevcairiel - thank you for fixing bug #31 :devil:
Andy o
28th April 2011, 09:46
Did i mention that MakeMKV sucks?
In any case, my change was so simple, it really shouldn't have hurt anything *cry* .. although, one thing i didn't think about..
I'll produce a new build, lets see if something useful happens.
Thanks a lot, that new build worked, and also for the previous TrueHD problem. The "bad" version this time was muxed with an older version of mkvmerge though.
nevcairiel
28th April 2011, 09:48
Thanks a lot, that new build worked, and also for the previous TrueHD problem. The "bad" version this time was muxed with an older version of mkvmerge though.
Oh well. Anyhow, the problem was an really obvious bug when i thought about it. :)
Glad its working fine again.
nevcairiel
28th April 2011, 15:27
http://files.1f0.de/lavf/LAVFilters-0.24-7-gb19315d.zip
Here is the latest build with the fixes for hoborg (missing audio after seeks), and the final fixes for bitstreaming TrueHD from MakeMKV files (without breaking other stuff this time). Thanks to Andy o for testing and reporting.
Bug fixing is all well and stuff, but i hope i can get working on new stuff over the weekend again. :)
BatKnight
28th April 2011, 15:41
The AC3 stream does show for me, but it doesn't play. It doesn't show with the MPC-HC splitter either. If you play the full file, do the first ~20 seconds actually have audio on that ac3 stream?
It doesn't seem to demux any packages for that stream.
I think thats actually the problem. The MPEG-TS demuxer is limited to reading a certain amount of bytes (5.000.000 to be exact, just short of 5MB), and if it doesn't find all the codec information in that time, well, it'll just show like this.
The LAVFilters-0.24-6-g308e2fe fixed it!
The AC3 track now shows up, but it doesn't play any audio until the 20th second. Before that it's silent. I looked into it and there actually isn't audio there to play. That must be the reason it didn't work before.
I guess this was on purpose to match the audio to the video, since the AC3 comes from a Portuguese DVD.
This is fine for me, I can consider it resolved. It detects the track and plays when it's audio there.
Thank you for you time invested in this. Keep up the good work.
Bat
mindbomb
28th April 2011, 18:21
idk know if this has been reported, but for me, 24 bit truehd in an mkv is being outputted as 32 bit
nevcairiel
28th April 2011, 18:49
So, here is a new one. I posted about this on the AVS Forums, and i thought i would just test it out and see if it works.
Re: Forced subtitles on Blu-rays.
There is two ways forced subtitles are present on Blu-rays. First is a separate track, which in this context is kinda bad. Its impossible to know what exactly is in one track - only the language is shown, everything else is organized with the menus.
The second way is that both normal and forced subs are in the same track. Before, this was even worse - now it might be awesome.
LAV Splitter can analyse PGS subtitle packages from Blu-rays, and detect if they are forced subs, or "normal" subs.
I tested this on an Avatar Blu-ray, and i can indeed figure out which packets are actually forced subs, and which are normal subs. That way i can actually drop all normal subs and only keep forced subs.
How it works?
- I selected the first subtitle track - its the english track with full subs.
- LAV Splitter analyses the data, and simply drops all non-forced subs - voila, only alien languages get subtitles.
Now, why i post about this here, i have a slight problem. I don't know how to make that feature easily configurable. My first plan was to simply add an option, like "PGS Subtitles: Only send forced subs".
But what if a Blu-ray does not have these flags setup, and before you don't understand the foreign languages in the movie, you want to switch to the full subs? Is going into the LAV Splitter config and turning that option off an acceptable solution?
My second thought was to add a second entry in the stream switcher for the forced subs - but Blu-rays easily have 15+ sub streams, that would double that amount - IMHO thats even worse then the other option!
So...
Ideas, anyone?
Otherwise i'll just go with the toggle-able option in the settings.
Personally, i'm really excited about this feature. I really don't like subs, but forced subs are part of the movie, and should be there. A way to have them automatically just show up on Blu-rays would be so sweet.
SamuriHL
28th April 2011, 18:58
After I just get through telling dbone you can't do that you come up with a way to do it?! :p Son of a! :D How about a combination of the two ideas? So at the top of the stream selector a selection for (forced only) and then list out the regular subs. Then if it's wrong, you can unselect the forced only selector and go to full subs. Would that work? I know it would be kuel with me, but, anyone else have a thought?
nevcairiel
28th April 2011, 19:05
I always knew i could do it, i just never knew it would be this easy! :)
Adding non-streams into the stream selector is possible, but not easy - i would rather try to avoid it.
Maybe most Blu-rays are actually properly flagged? I don't have any data to say in either direction. But thats not where the problems end - it's just not easy then to switch full subs on.
Like, i like watching my movies all in english (I'm german) and i understand it perfectly, but if i have some friends over, we might still watch it in english, but they need/want subs - going into the config seems a bit of a stretch. Then again, its probably equally fast then going into the BD menu and changing the stream there, huh.
Well i can always worry about UI things later, right?
SamuriHL
28th April 2011, 19:11
Figures! :D
Hmm. Yea, I can see the value of wanting to avoid adding that option to the stream selector. I'm not sure of an easy way to do it though. You only have interaction through the directshow filters display for whatever player they're using. Yes, you could force them to go into the properties and turn the option off. You want a REALLY confusing way to do it? :D Make it so if they RESELECT the current sub track that it switches from forced to full and vice versa. :D I doubt you can change the name of the sub track on the fly though can you? So, turn the option on in the properties, the sub tracks have "english (forced only)"....they find out the flags aren't set and want to switch, they select the track again and it switches to "english (full)". :D No? LOL!
nevcairiel
28th April 2011, 19:13
I think that would be possible .. but a good solution? I don't know o.O
SamuriHL
28th April 2011, 19:13
Technically the way other players handle it....wait, this might be it. Other players play forced subs always even when subs are off. So you could have it play forced subs when the no subs selection is made, and then if they want full subs they can select it. AHA! There we go, Nev! :)
nevcairiel
28th April 2011, 19:14
That won't work. They still need to select the language they want.
SamuriHL
28th April 2011, 19:16
Um, the forced subs should match the language of the audio track currently playing. The way it's done in other players is that all force subs in sub tracks that are of the same language as the current audio track selected always get played. That's even if the subs are "off". Then they can select any sub track they want. I think this would ROCK!
nevcairiel
28th April 2011, 19:18
Seems like kind of a limitation to not allow changing the forced subs language. On some BDs it might also be in another sub track, and you need to switch to it .. its just - real BD players get all that information through the menu system, i don't, so i have to keep things configurable for the user to fix auto-detection mistakes :(
SamuriHL
28th April 2011, 19:21
Yea. You could allow them to set a default language, though. I mean, MOST of the time the use case I outlined will be right. If it's wrong, then yea, they may have to go into the properties to fix it while it's playing. That's not OVERLY likely to happen if you match the sub to the audio language. But yes, I see your point.
clsid
28th April 2011, 19:47
If a user wants to only see forced subs, the subtitle language indeed typically matches the audio language. So you could for example only show two entries for that particular subtitle language. However, in that case the list of sub streams depends on the selected audio stream, and changing audio might be a bit problematic, but you could maybe let it auto-change the subs in that case.
Any plans for an (optional) tray icon? I always find that useful for quickly changing tracks and accessing the settings.
nevcairiel
28th April 2011, 20:00
No actual plans for a tray icon. It may happen one day, but not really planned yet.
Re: Subs
I guess i can make both ways possible, with some options, something like this
PGS Subtitles
- "Only deliver forced subtitles" - This option would filter out the forced subs out of whatever stream is currently selected, nothing special. Whichever track you select, you never get full subs.
- "Show Forced Subtitles separately, matching Audio" - This would add a new entry to the stream selector, a "Forced Subtitle" entry, which would show the forced subs matching the language of the audio. If you select any other track, you would get full subs.
If the first option is selected, and you have the "Only forced subtitles" select stragey on, it would ignore that option and select the first matching subtitle track. If the second is selected, and there is no stream flagged "forced", and there are PGS subs, it would go to the special "Forced Subtitles" entry, otherwise to no subs.
I'll implement the first, because thats really trivial. For the second, i'll have to think about the implementation a bit - it should be possible, especially because it only applys to PGS subs..
joeydrunk
28th April 2011, 20:02
Forced subs are always on and you never have an option to change them. They will always match the language that the audio is in. So all you have to do is leave the forced subs on and be ale to select the language that the audio is in and the subs will match.... Right?
nevcairiel
28th April 2011, 20:04
There is nothing preventing you from changing them. The question is how to do it properly.
The second mode outlined two posts above will most likely work just fine for 99% of all cases, and once implemented will most likely be the default.
joeydrunk
28th April 2011, 20:05
Edit: I got my last post in before I saw yours Nev. I think I said the same thing you did.
joeydrunk
28th April 2011, 20:12
There is nothing preventing you from changing them. The question is how to do it properly.
The second mode outlined two posts above will most likely work just fine for 99% of all cases, and once implemented will most likely be the default.
But like on a stand alone BLURAY player you can't change or turn off the forced subs, there always present in the language that's being played.
nevcairiel
28th April 2011, 20:13
But what if you want to? Options don't hurt.
Anyhow, i have a plan how i'm going to implement it.
nevcairiel
28th April 2011, 21:12
Here is a first build that implements the first method.
There is a new option on the properties page, when you select that, all PGS streams will be filtered, and only frames flagged as forced will be delivered to the subtitle renderer. It works just awesome on my Avatar Blu-ray.
I'll implement the second option soon, the checkbox in the properties page is already there. :p
When the option is on, the "Only Forced Subs" selection mode will select any PGS subs it finds (the first with the appropriate language, usually), unless it finds one flagged as "forced" - but thats only in MKVs.
http://files.1f0.de/lavf/LAVFilters-0.24-9-g60f737a.zip
Any testing of this is greatly appreciated.
Sadly there isn't really much of an indicator if a stream is actually flagging forced subs like that, so if it doesn't show any when the option is on, it could just be that..
PS:
You can swap the option during playback, however it might require quite a while until you see the change, depending on how many subtitle frames are already queued up.
SamuriHL
28th April 2011, 21:25
Sweet! As soon as I'm done with my daily call I'll build a version and test it out. I have a test case that'll probably break it. :D I'm not telling which disc it is until I try it cause I don't want anyone ruining my fun. :D
Andy o
28th April 2011, 22:47
Thanks nev,
I'm wondering after my minor troubles these past couple of days, if the mkv muxers have any say on this. Will they preserve the PGS forced flags? makeMKV has for each subtitle track a sub-section that says (forced) or something like that, that you can also check or uncheck. I know the audio streams work like this: If you select the lossless track AND the DD or DTS in its sub-section, you get two different tracks in the final mkv. If you only check one, you'll get one of course. Presumably makemkv takes the DD from the interleaved THD/DD, and the DTS from the DTS-HD core.
Anyone tried with these makemkv sub options? I know Samuri uses it, maybe others do too. I'd never paid much attention to these forced sub issues.
(BTW, I would test myself, but I don't think I have any forced sub movies.)
SamuriHL
28th April 2011, 22:53
Andy I'll get back to you in a minute after dinner. Nev, no workie. :) I get no subs on District 9. I told you I'd break it! :D That movie is notoriously a pain.
jmone
28th April 2011, 22:58
I'm having issues with keeping subs displayed (they seem to just stop displaying after 30 sec or so). I've seen this before and always thought it was a FFDSHOW issue but ..... any suggestions?
Filter Graph Info:
Filter 'J. River Audio Renderer'
CLSID: {A4002F8E-510F-442C-8AD3-F9C7B23FB394}
Host:
Input Pin 'In'
Connected to pin 'XForm Out' of filter 'ArcSoft Audio Decoder HD'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_PCM, Format type FORMAT_WaveFormatEx
Filter 'madVR'
CLSID: {E1A8B82A-32CE-4B0D-BE0D-AA68C772E423}
Host: c:\users\htpc\downloads\filters\madvr\madvr.ax
Input Pin 'Input'
Connected to pin 'Out' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YV12, Format type FORMAT_VideoInfo2
Filter 'ArcSoft Audio Decoder HD'
CLSID: {1A89085B-B654-4ED8-8831-5AC629A05FF5}
Host: c:\users\htpc\downloads\filters\arcsoft\asaudiohd.ax
Input Pin 'XForm In'
Connected to pin 'Audio' of filter 'LAV Splitter Source'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {00002001-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Output Pin 'XForm Out'
Connected to pin 'In' of filter 'J. River Audio Renderer'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_PCM, Format type FORMAT_WaveFormatEx
Filter 'ffdshow Video Decoder'
CLSID: {04FE9017-F873-410E-871E-AB91661A4EF7}
Host: c:\program files\ffdshow\ffdshow.ax
Input Pin 'In'
Connected to pin 'Video' of filter 'LAV Splitter Source'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435641-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Out'
Connected to pin 'Input' of filter 'madVR'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YV12, Format type FORMAT_VideoInfo2
Input Pin 'In Text'
Connected to pin 'Subtitle' of filter 'LAV Splitter Source'
Major type Unknown GUID Name: {E487EB08-6B26-4BE9-9DD3-993434D313FD} Sub type Unknown GUID Name: {04EBA53E-9330-436C-9133-553EC87031DC}, Format type Unknown GUID Name: {04EBA53E-9330-436C-9133-553EC87031DC}
Input Pin 'In Text 2'
Filter 'LAV Splitter Source'
CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Host: c:\users\htpc\downloads\filters\lavfilters\lavsplitter.ax
Output Pin 'Video'
Connected to pin 'In' of filter 'ffdshow Video Decoder'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435641-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Audio'
Connected to pin 'XForm In' of filter 'ArcSoft Audio Decoder HD'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {00002001-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Output Pin 'Subtitle'
Connected to pin 'In Text' of filter 'ffdshow Video Decoder'
Major type Unknown GUID Name: {E487EB08-6B26-4BE9-9DD3-993434D313FD} Sub type Unknown GUID Name: {04EBA53E-9330-436C-9133-553EC87031DC}, Format type Unknown GUID Name: {04EBA53E-9330-436C-9133-553EC87031DC}
SamuriHL
28th April 2011, 23:06
Thanks nev,
I'm wondering after my minor troubles these past couple of days, if the mkv muxers have any say on this. Will they preserve the PGS forced flags? makeMKV has for each subtitle track a sub-section that says (forced) or something like that, that you can also check or uncheck. I know the audio streams work like this: If you select the lossless track AND the DD or DTS in its sub-section, you get two different tracks in the final mkv. If you only check one, you'll get one of course. Presumably makemkv takes the DD from the interleaved THD/DD, and the DTS from the DTS-HD core.
Anyone tried with these makemkv sub options? I know Samuri uses it, maybe others do too. I'd never paid much attention to these forced sub issues.
(BTW, I would test myself, but I don't think I have any forced sub movies.)
If you select the forced option for subs, it scans the sub track while ripping it and looks for forced subs. If it finds any, it creates a new sub track with JUST the forced subs in it, separate from the main sub track. (Assuming you have it set to rip both). And yes, for audio, you are correct in how it works.
Andy o
28th April 2011, 23:30
Thanks, I suspected it did that, but I don't think I ever ripped an actual forced sub track. So I'm assuming that it doesn't mess with PGS forced flags in any case, do you know this?
SamuriHL
28th April 2011, 23:37
I don't know what it does about that. I'm under the impression it doesn't set the flags properly afaik. I could be mistaken though. I don't know if I have an MKV on my drive right now that has any forced subs that I can check, and I don't feel like ripping District 9 just to check. (Man the subs in that movie are MESSED UP. When they were working on adding PGS sub support to ffdshow, this particular movie gave them problems to begin with if I remember right.) In any case, I don't remember if it adds default and forced flags to the MKV's or not.
Andy o
28th April 2011, 23:37
BTW here's an old-ish AVS thread (http://www.avsforum.com/avs-vb/showthread.php?t=1176923) that might be worth reviewing. I'm curious about MikeEby's post (http://www.avsforum.com/avs-vb/showthread.php?p=17130818#post17130818).
Andy o
28th April 2011, 23:39
I have a free blu-ray rental from the store, I can stop by later and pick one up to test. Do you guys have one in mind, or just pick any from the list linked above?
SamuriHL
28th April 2011, 23:46
Yea, that's what I'm talking about with district 9 and why MakeMKV takes the approach that it does. In a normal, "sane" BD, they have a separate forced sub track. Then there's idiotic movies like district 9 that embed the forced subs in the regular sub track and flag them as forced. MakeMKV scans the sub tracks as it's ripping them (the ONLY way to detect them, btw...can't be done "up front"), and adds the forced subs to a new track if any embedded forced subs are found. Good times yea?
SamuriHL
28th April 2011, 23:47
Well, Nev and I both have Avatar. I have district 9. I haven't checked the whole list but I probably have a few others from it kicking around, as well. But Avatar and District 9 are covered.
SamuriHL
29th April 2011, 00:10
Ok, I've discovered somewhat of a problem. MAJOR SIGH. It doesn't work with ffdshow sub rendering. That SUCKS! It sort of does if I back up a bit and go back, but, in general it doesn't work. This is bad simply because I really want to use MC16 and need to use ffdshow for subs as a result. I've been looking at Salt when I found this issue. I don't have time to do any more testing tonight, but, I didn't get a chance to retry District 9 with MPC-HC's sub renderer.
Andy o
29th April 2011, 00:12
I thought what you described for District 9 was what Nev meant about how subs worked? So, basically, there are whole separate tracks that can be forced by the blu-ray player, and there are individual subtitle lines that can be flagged inside a regular sub track. IIRC BDSup2Sub could identify these lines. So, Avatar does the former ("sane") while D9 does the latter?
SamuriHL
29th April 2011, 00:17
It is. That's why I tested it with district 9 because I knew it had flagged subs inside the main sub track instead of a separate forced sub track. However, given my recent ffdshow sub renderer discovery, I'm not sure if district 9 is the issue or not. I'm leaning towards not. I'll retest it again when I get a chance. Actually I can do it on my laptop while I'm watching shows so I guess I can get everything updated and give it a try.
joeydrunk
29th April 2011, 00:19
So the forced subtitles seem to be working on the movie traffic, I tried in mpc-hc. I enable and they turn on and unchecked unable and the forced subtitles turn off. But I can't get the real subtitles to turn on. I tried a couple different combinations with the "enable" and "default" options. I havnt used mpchc enough though to know if the regular subtitles usually work.
SamuriHL
29th April 2011, 00:25
District 9 doesn't work with MPC-HC's sub renderer, either. At least on my laptop. ARGH! Nev, let me know what you need from me to help make this work. Do you think it's because I'm skipping around to find the forced subs? I mean, obviously it should work skipping chapters, but, could that be an issue?
robpdotcom
29th April 2011, 00:50
I'm under the impression it doesn't set the flags properly afaik.
Correct, MakeMKV does NOT set flags for forced subs - you must load the file into mmg's header editor to set the forced flag (which only takes a few seconds).
SamuriHL
29th April 2011, 00:52
Correct, MakeMKV does NOT set flags for forced subs - you must load the file into mmg's header editor to set the forced flag (which only takes a few seconds).
Yea, that's what I thought. I remember seeing that issue discussed before. I probably have some MKV's that I need to go fix. Lucky me.
Andy o
29th April 2011, 00:53
It works!
The blu-ray of Paprika has forced subs (5 subs in the whole track, translations of signs in the movie, from Japanese). The blu-ray has 3 English PGS subs. One is the normal one, with the 5 forced subs inside them. The other one is SDH with no forced subs and the other is the commentary. All this was confirmed with BDSup2Sub as well.
So I ripped it with makeMKV and selected only the two English sub tracks of the movie. I checked also the "(forced only)" option. As Samuri said, this made a whole new track for just the forced subs, and I ended up with 3 English sub tracks.
I played with MPC-HC and its sub renderer. The first Eng track did have the flags preserved, and it worked great. I can see forced only when enabling the option in LAVF Splitter. The second Eng sub track did indeed have only the forced subs, no problem there. The 3rd track is the SDH, which didn't have any forced subs.
Andy o
29th April 2011, 00:54
Correct, MakeMKV does NOT set flags for forced subs - you must load the file into mmg's header editor to set the forced flag (which only takes a few seconds).
Posted before I saw your post. It does seem to be preserving the flags. I tried with 1.6.8, but I haven't seen this specific issue on the release log.
SamuriHL
29th April 2011, 00:56
Posted before I saw your post. It does seem to be preserving the flags. I tried with 1.6.8, but I haven't seen this specific issue on the release log.
Check it with mkvinfo gui.
joeydrunk
29th April 2011, 01:06
It works!
The blu-ray of Paprika has forced subs (5 subs in the whole track, translations of signs in the movie, from Japanese). The blu-ray has 3 English PGS subs. One is the normal one, with the 5 forced subs inside them. The other one is SDH with no forced subs and the other is the commentary. All this was confirmed with BDSup2Sub as well.
So I ripped it with makeMKV and selected only the two English sub tracks of the movie. I checked also the "(forced only)" option. As Samuri said, this made a whole new track for just the forced subs, and I ended up with 3 English sub tracks.
I played with MPC-HC and its sub renderer. The first Eng track did have the flags preserved, and it worked great. I can see forced only when enabling the option in LAVF Splitter. The second Eng sub track did indeed have only the forced subs, no problem there. The 3rd track is the SDH, which didn't have any forced subs.
i hope your right. ive done 905 of my mkvs with makemkv
joeydrunk
29th April 2011, 01:07
thats suppose to be 90%
Andy o
29th April 2011, 01:10
i hope your right. ive done 905 of my mkvs with makemkv
may depend on the version too, though.
Andy o
29th April 2011, 01:16
Check it with mkvinfo gui.
What can I look for? It only shows if the tracks themselves have the forced flag, not the individual subs. It's showing me the 3 Eng tracks I referenced above.
I don't see how it could be working the way I described above though, if makeMKV wasn't preserving the flags for the individual subs.
SamuriHL
29th April 2011, 01:21
What can I look for? It only shows if the tracks themselves have the forced flag, not the individual subs. It's showing me the 3 Eng tracks I referenced above.
I don't see how it could be working the way I described above though, if makeMKV wasn't preserving the flags for the individual subs.
Yea, it very well may be. I honestly don't know.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.