Log in

View Full Version : LAV Filters - DirectShow Media Splitter and Decoders


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 [351] 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511

wanezhiling
22nd April 2014, 13:47
http://www.sendspace.com/file/2y7z2h
LAV detects its duration 3min49s, MediaInfo says 3min43s.

filler56789
22nd April 2014, 14:17
http://www.sendspace.com/file/2y7z2h
LAV detects its duration 3min49s, MediaInfo says 3min43s.

It's because LAV Splitter thinks the cover picture is part of the audio stream :)

wanezhiling
22nd April 2014, 14:33
Make sense.

nevcairiel
22nd April 2014, 15:33
@Nev
I've sent you (via pm) a TS sample which doesn't play smoothly. Bad timestamps?

EDIT:
Jerky playback using the latest madVR (MPC-HC 1.7.4).
Slow playback (~20fps) using custom EVR.
Weird (but best) playback using EVR.
I wonder what causes it.

Yes, it has weird timestamps, but I'm not 100% sure why.
I have some plans to try to come up with a sane way to try to automatically improve such problems, but we'll just have to wait and see if that works out.

clsid
22nd April 2014, 19:04
Does the WMV9 MFT decoder have any advantages compared to the DMO one?

nevcairiel
22nd April 2014, 19:05
If not being stupid broken on Windows 8.1 counts, sure.

Finnish Flash
24th April 2014, 16:29
Hey nev, awesome job with the decoder, mate!

I've been using LAV + MPC-HC for streaming MPEG-TS from my ISP's recording service. Aside from the playback taking some extra seconds to start comparing to VLC, it's working very well.

In order to be able to rewind and fast-forward and get the full duration of a file instead of just a couple of seconds from the beginning, I have to insert the following to registry:

[Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\http]
"Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}"

This enables splitting video and audio from HTTP protocol with LAV Splitter, right?

Could you make this a default setting, or is there some downside to this? I mean, this could help someone else, too.

sneaker_ger
26th April 2014, 14:38
Should LAV signal bt601 colors for VP8 video? At the moment it leads to the usual resolution based guessing by the renderer but the spec seems to only supports "YUV color space similar to the YCrCb color space defined in [ITU-R_BT.601]".
http://datatracker.ietf.org/doc/rfc6386/?include_text=1 (9.2)

Opinions?

mandarinka
28th April 2014, 19:47
That's a problem, because it is quite clear that when an HD video gets encoded, it is originally BT709. And I bet the chances are pretty high that the transcoding tool used won't convert the colormatrix...

Yay On2/Google...

sneaker_ger
28th April 2014, 21:14
That's a problem, because it is quite clear that when an HD video gets encoded, it is originally BT709. And I bet the chances are pretty high that the transcoding tool used won't convert the colormatrix...

That may be, but VP8 is pretty much only used in the context of websites so it makes sense if the browsers use BT.601 as well (which they allegedly do).

e-t172
28th April 2014, 21:35
Uh? I would rather expect the browsers to conform to sRGB (since it's the web standard), which has the same primaries as BT.709.

foxyshadis
29th April 2014, 02:32
Should LAV signal bt601 colors for VP8 video? At the moment it leads to the usual resolution based guessing by the renderer but the spec seems to only supports "YUV color space similar to the YCrCb color space defined in [ITU-R_BT.601]".
http://datatracker.ietf.org/doc/rfc6386/?include_text=1 (9.2)

Opinions?

The VP8 spec is so ass-backwards that it's likely that On2 simply didn't know BT.709 existed and would do all YUV<->RGB conversions with BT.601, and they put that in because they'd never considered signaling it, but in nearly all cases VP8 shouldn't be involved in any RGB conversion at all. It won't know how the original source was converted, and shouldn't care, like any other video codec (unless manually signaled).

Resolution-dependent switching is a de-facto standard, and in the absence of signaling there's never a good reason to ignore it. It's sad, but it's not the only place you have to defy the spec to work with VP8....

sneaker_ger
29th April 2014, 09:50
Resolution-dependent switching is a de-facto standard
This is what I'd like to test. As I said: when browsers do confirm to the BT.601 part it's hardly the defacto-standard for VP8. It would make sense for LAV to use BT.601 as well so people see the same colors in their player as they see in their browser. Most use cases would be (1) test files before uploading to your own HTML5 website, (2) watch files downloaded from the web. Nobody uses VP8 to backup their Blu-Ray collection.

mandarinka
29th April 2014, 10:17
So in case HD videos are bt709, LAV should do it incorrectly just because other software is also dumb?
Browser video playback implementations are rather crude in any case, so they shouldn't be viewed as a reference for anything (besides sucking).

/OTOH - in many cases, e.g. youtube, the HD streams will actually be upscales of SD sources. But LAV Video isn't a youtube player, it is a directshow decoder./

sneaker_ger
29th April 2014, 10:35
So in case HD videos are bt709, LAV should do it incorrectly just because other software is also dumb?
If the spec says videos are BT.601 than LAV would not be doing it incorrectly, it would be the files that have been created incorrectly. And who says other software is dumb? They are following the specs. If you encode video for the web without regard to specs and browsers on the other hand...

wanezhiling
29th April 2014, 16:21
http://www.sendspace.com/file/5uoefl
Can't play the ape file.

mandarinka
30th April 2014, 00:05
They are following the specs. If you encode video for the web without regard to specs and browsers on the other hand...

That would be if they didn't do the same for H.264 too. IIRC (I might be wrong...) it is not about spec, it is because they don't know any better and VP8 happens to be the same.

RealSnoopyDog
3rd May 2014, 11:18
Hi, i just recongized that "newer" versions of the LAV filters (versions which contain the "avfilter-lav-4.dll") are not able to playback mp4 videos with a low frame rate (e.g. 16.6667 Hz) synchronous anymore. Video is played back way too fast, video and audio are totally out of sync. When i use older versions of the LAV filters where the "avfilter-lav-3.dll" is still included, playback is ok.

filler56789
3rd May 2014, 12:43
Hi, i just recongized that "newer" versions of the LAV filters (versions which contain the "avfilter-lav-4.dll") are not able to playback mp4 videos with a low frame rate (e.g. 16.6667 Hz) synchronous anymore. Video is played back way too fast, video and audio are totally out of sync. When i use older versions of the LAV filters where the "avfilter-lav-3.dll" is still included, playback is ok.

Over here, version 0.61.2 plays a 12fps MP4 file at 12fps.

Perhaps your low framerate MP4s are borked? :confused:

qtwebkit
9th May 2014, 10:23
Problem decoding this file (http://pan.baidu.com/s/1c0nFC6c) with black screen, both software and hardware decoding.
Only software decoding with potplayer's internal filter works fine, broken with pot dxva.

P.J
9th May 2014, 11:39
When will we get HEVC H.265 support through QuickSync? :)

LigH
9th May 2014, 12:03
Not before intel would produce a GPU which is able to accelerate H.265 decoding at all.

zerowalker
9th May 2014, 12:13
Got a question,

Those who can use , QuickSync, DXVA2 (Native) and/or NVIDIA CUVID.

Do you get a delay when seeking?
For example, if i jump forward 5 sec using the software decoder, it will almost instantly show that image (Depending on keyframes and CPU usage of course).
While DXVA2 (Copy-Back) does not, it has a bit of a delay which is kinda annoying as i seek a lot (I can only use Copy-Back, hence why i ask about the others).

I am not sure if it's supposed to be that way, or is a Copy-Back limitation etc, or something that can be fixed/improved.

It's not really an issue, but would be interested to hear about it.

wanezhiling
9th May 2014, 12:30
Problem decoding this file (http://pan.baidu.com/s/1c0nFC6c) with black screen, both software and hardware decoding.
Only software decoding with potplayer's internal filter works fine, broken with pot dxva.
Baidu is extremely slow for nevcairiel, I uploaded it to another host (http://yunpan.cn/QiuVDPerjd4RF), nev please give a try.

password: 2240

sneaker_ger
9th May 2014, 13:57
Got a question,

Those who can use , QuickSync, DXVA2 (Native) and/or NVIDIA CUVID.

Do you get a delay when seeking?
For example, if i jump forward 5 sec using the software decoder, it will almost instantly show that image (Depending on keyframes and CPU usage of course).
While DXVA2 (Copy-Back) does not, it has a bit of a delay which is kinda annoying as i seek a lot (I can only use Copy-Back, hence why i ask about the others).

I am not sure if it's supposed to be that way, or is a Copy-Back limitation etc, or something that can be fixed/improved.

It's not really an issue, but would be interested to hear about it.

Many hardware decoders (especially AMD) are much slower than modern CPUs so it's normal depending on your hardware.

zerowalker
9th May 2014, 14:36
Oh, so it's simply a delay caused by "CPU Usage" but for the hardware decoder?

I was in the thought that Hardware decoders were extremely low-level and optimized, resulting in much faster decoding compared to a CPU of the same level.
How does it work for you when seeking, if you have any other of the hardware decoders?

DarkSpace
9th May 2014, 20:42
Is there a way to make LAV Splitter auto-select its audio based on languages only when no default flag was found?
I read the ReadMe for the Splitter auto-selection rules, searched this thread, and even tried some configurations myself (for example "*,eng" for "Use Default, when available, otherwise default to English audio), but none of them worked.
I also searched this thread, but came up with no results.

michkrol
9th May 2014, 20:58
Oh, so it's simply a delay caused by "CPU Usage" but for the hardware decoder?
Yes, the decoder needs to process all the frames from a keyframe to the frame you want to see.
You might want to check out fast seek (on keyframe) if you're using MPC-HC (find it under tweaks in options).
I was in the thought that Hardware decoders were extremely low-level and optimized, resulting in much faster decoding compared to a CPU of the same level.
They are optimized for power consumption, not speed. You rarely want to play a movie faster than realtime, although the extra speed helps while seeking.
How does it work for you when seeking, if you have any other of the hardware decoders?
For me the seeking is almost instant (on same level as software decoding) with Intel HD4000 using QuickSync and Geforce GTX 750Ti using CUVID/DXVA-CB/DXVA-N.
Is there a way to make LAV Splitter auto-select its audio based on languages only when no default flag was found?
I read the ReadMe for the Splitter auto-selection rules, searched this thread, and even tried some configurations myself (for example "*,eng" for "Use Default, when available, otherwise default to English audio), but none of them worked.
I also searched this thread, but came up with no results.
I don't think you can do that. Such level of flexibility is only offered for subtitle streams selection.

DarkSpace
9th May 2014, 21:04
I don't think you can do that. Such level of flexibility is only offered for subtitle streams selection.
Thank you for confirming that. I'm going to open an issue for that, but I wanted to make sure it's not possible already.

zerowalker
9th May 2014, 21:19
Yes, the decoder needs to process all the frames from a keyframe to the frame you want to see.
You might want to check out fast seek (on keyframe) if you're using MPC-HC (find it under tweaks in options).

Okay that explains the Delay as it's processed faster than realtime, or rather is forced to.
I am using ZoomPlayer however so not an option, though can check it on MPC-HC as i use it in some occasions.

They are optimized for power consumption, not speed. You rarely want to play a movie faster than realtime, although the extra speed helps while seeking.

But they are better than Software decoding, in pure efficiency right?
As if not, the power consumption idea falls down the floor.

For me the seeking is almost instant (on same level as software decoding) with Intel HD4000 using QuickSync and Geforce GTX 750Ti using CUVID/DXVA-CB/DXVA-N

That's great to hear!

A quick one to that, is all those limited to H264 standard settings like DXVA2, or are they more flexible?

vivan
10th May 2014, 00:58
But they are better than Software decoding, in pure efficiency right?
As if not, the power consumption idea falls down the floor.That depends... for example on my laptop (intel i5-2410M + nVidia 540M), in terms of power consuption: QS (intel) < software < CUVID (nVidia). Which means that nVidia's hw decoder is useless there.

A quick one to that, is all those limited to H264 standard settings like DXVA2, or are they more flexible?Check this thread http://forum.doom9.org/showthread.php?t=163110

nevcairiel
10th May 2014, 08:50
That depends... for example on my laptop (intel i5-2410M + nVidia 540M), in terms of power consuption: QS (intel) < software < CUVID (nVidia). Which means that nVidia's hw decoder is useless there.

Thats not the hardware decoders fault, using CUVID puts the GPU into high-performance mode, which obviously eats more battery power.

If you use DXVA2-CB or Native on the same GPU, it'll use much less.
If you system has both Intel and NVIDIA in a mobile product, the Intel is probably going to be using less though.

vivan
10th May 2014, 09:05
If you use DXVA2-CB or Native on the same GPU, it'll use much less.Yeap. But the only way to do this - is to force media player to use dGPU (otherwise it'll use intel hw decoder). And using it for rendering will result in higher power consuption again.

Yes, it's nVidia fault, not decoder's. What I wanted to say is that while h/w decoder could be more efficient than s/w decoder - using it will not always result in lower power consumption.

u28151
11th May 2014, 08:44
Hi,

I wonder if there are any chance making LAV Filter settings systemwide opposed to user based? Reason is that the settings seem to be hardware related. Also it will be easier to auto deploy LAV since you do not have to consider configuring each logged on users registry hive.

Thanks for a great piece of software!

/U

mecedo
12th May 2014, 22:23
Can LavVideo decode 4k video on Intel Haswell processors?
On my Core i3 4130T when decoding with QuickSync there are frame drops. madVR (even with nearest neighbour scaling algorithms) shows only 1-2 frames in decoder queue so I suppose that LavVideo is weak point. And it's strange that GPU and CPU utilization is below 70%.

nevcairiel
13th May 2014, 09:54
Don't use QuickSync, it has a CPU overhead. Use DXVA2-Native instead to avoid this overhead.
You should also check if 4K/UHD hardware decoding is actually enabled in LAV Video, its not by default.

andyvt
13th May 2014, 10:53
Hi,

I wonder if there are any chance making LAV Filter settings systemwide opposed to user based? Reason is that the settings seem to be hardware related. Also it will be easier to auto deploy LAV since you do not have to consider configuring each logged on users registry hive.

/U

System wide settings would require admin rights. It's possible to do that without users experiencing UAC prompts (or needing admin rights at all), but it would be significantly more complicated to build and support and provide little ROI.

Depending on the exact scenario, this is something you could address quite easily with a login script or something similar.

nevcairiel
13th May 2014, 10:58
You can write default settings to HKLM manually, LAV will read them if HKCU doesn't contain settings yet. That way your deployment could define defaults for all users, but users could still customize individually - and reading from HKLM doesn't require admin.

mecedo
13th May 2014, 18:58
Don't use QuickSync, it has a CPU overhead. Use DXVA2-Native instead to avoid this overhead.
You should also check if 4K/UHD hardware decoding is actually enabled in LAV Video, its not by default.

But with "DXVA Native" CPU usage is 100% and "Active decoder" points to avcodec. Does avcodec mean that decoding is by software?
UHD (4K) checkbox is selected of course.

nevcairiel
13th May 2014, 19:09
Then your hardware refuses to decode those clips.

LigH
13th May 2014, 19:11
May depend on the video format. I doubt that the decoding of all possible formats can already be accelerated by hardware.

mecedo
13th May 2014, 21:38
Theoretically Intel Haswell can decode 4k. With QuickSync decoder CPU usage is noticeably lower, but as I described frames are dropped.
With DXVA2 even FullHD 24p isn't hardware decoded on Intel processors, because CPU usage is as high as with software decoding. It was in my previous CPU SandyBridge and with current Haswell processor.

I've tried 4k clips from this site:
http://box.houkouonchi.jp/4k/

andyvt
14th May 2014, 09:25
Theoretically Intel Haswell can decode 4k. With QuickSync decoder CPU usage is noticeably lower, but as I described frames are dropped.
With DXVA2 even FullHD 24p isn't hardware decoded on Intel processors, because CPU usage is as high as with software decoding. It was in my previous CPU SandyBridge and with current Haswell processor.

I've tried 4k clips from this site:
http://box.houkouonchi.jp/4k/

Something is wrong with your system. HSW can decode 4K AVC in hardware..

http://babgvant.com/images/hsw4k.jpg

u28151
14th May 2014, 09:26
You can write default settings to HKLM manually, LAV will read them if HKCU doesn't contain settings yet. That way your deployment could define defaults for all users, but users could still customize individually - and reading from HKLM doesn't require admin.

Thank you, this option looks like the most suitable for me!

mecedo
14th May 2014, 09:45
Something is wrong with your system. HSW can decode 4K AVC in hardware..


What operating system and videoplayer are you using?

andyvt
14th May 2014, 09:49
What operating system and videoplayer are you using?

In the screenshot I was using GraphStudioNext (a DirectShow prototyping/testing tool) on Windows 8.1 (the OS, as long as it's modern shouldn't matter). Any application using the same filters shown (i.e. LAV + EVR) should enjoy the same experience.

mecedo
14th May 2014, 11:04
I'll try with 64 bit OS because I'm using 32bit Win 7.
I don't have idea what causes DXVA2 not working.

andyvt
14th May 2014, 11:06
I'll try with 64 bit OS because I'm using 32bit Win 7.
I don't have idea what causes DXVA2 not working.

Probably drivers.

mecedo
14th May 2014, 22:06
I've tried with Intel® Iris™ and HD Graphics Driver 15.33.18.3496 and beta 15.33.0.3574 from Intel's download page.

andyvt
14th May 2014, 22:34
I've tried with Intel® Iris™ and HD Graphics Driver 15.33.18.3496 and beta 15.33.0.3574 from Intel's download page.

What app are you using? Have you tried doing it explicitly like I did?

Do you have anything like VSFilter (DirectVobSub) installed? If so, it will disable DXVA in many cases.