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

DragonQ
23rd February 2014, 22:16
First testing shows its around 3x as fast as VP5, reaching close to 400 fps in various 1080p samples, or 80 fps on 4K. But that was only a quick and dirty test with very limited samples, more later, and maybe I can also squeeze more out of it by modifying the decoder a bit to be more aggressive.

Is this with CUVID or DXVA2?

wanezhiling
24th February 2014, 04:09
Thanks! Maxwell is far beyond my expectation, wonderful!

nev, could you test this clip (https://forums.geforce.com/default/topic/527075/hardware-acceleration-decoding-issue) with your 750? Cuz NVIDIA promised fix in next GPU, see it's post #18 (https://forums.geforce.com/default/topic/527075/geforce-drivers/hardware-acceleration-decoding-issue/post/3807011/#3807011)
It is a hardware limitation for this type of video stream. Our next GPU Maxwell architecture will add support for this in hardware.

nevcairiel
24th February 2014, 20:31
Thanks! Maxwell is far beyond my expectation, wonderful!

nev, could you test this clip (https://forums.geforce.com/default/topic/527075/hardware-acceleration-decoding-issue) with your 750? Cuz NVIDIA promised fix in next GPU, see it's post #18 (https://forums.geforce.com/default/topic/527075/geforce-drivers/hardware-acceleration-decoding-issue/post/3807011/#3807011)

The file seems to play fine on the 750, no artifacts anymore.

And some more performance numbers. Turns out my initial findings about 4K performance were inaccurate, but like I said, it was a quick look yesterday. :)

- H.264 4K decoding on low-bitrate clips can easily go up to 130 fps, or down to 60 fps on extremely high bitrates (ie. the 370Mbps ducks take off). On average it reached around 100 fps on "normal" clips I had around.
- H.264 1080p decoding is as reported yesterday, between 350 and 400 fps.
- VC-1 and MPEG-2 decoding speed increased similar, to ~410-440 fps at 1080p

When NVIDIA finally releases the final version of CUDA SDK 6.0, maybe I can also find out how to do partial HEVC acceleration.

GTPVHD
24th February 2014, 21:04
Interesting, thanks for the update, nev. Unfortunately, the Nvidia drivers don't support partial HEVC decoding yet according to Anandtech, so have to wait for a future driver release.

NikosD
24th February 2014, 22:49
And some more performance numbers. Turns out my initial findings about 4K performance were inaccurate, but like I said, it was a quick look yesterday. :)

- H.264 4K decoding on low-bitrate clips can easily go up to 130 fps, or down to 60 fps on extremely high bitrates (ie. the 370Mbps ducks take off). On average it reached around 100 fps on "normal" clips I had around.
- H.264 1080p decoding is as reported yesterday, between 350 and 400 fps.
- VC-1 and MPEG-2 decoding speed increased similar, to ~410-440 fps at 1080p

When NVIDIA finally releases the final version of CUDA SDK 6.0, maybe I can also find out how to do partial HEVC acceleration.

It would be useful to compare your GT2 with VP6 on the same clips.

How much faster is GT2 according to your tests in 1080p and 4K H.264 clips ?

nevcairiel
24th February 2014, 22:56
Thats not useful to me. But as I already said two days ago, its around 25% faster (400 vs 500 fps at 1080p, or 80-100 vs 120-140 at 4k)

NikosD
24th February 2014, 23:05
Two days ago you wrote 4K at 100 fps for Intel.
That's 25% faster than 4K at 80 fps of Nvidia.

Now with your new figures, the gap widens to ~50% for 4K (80fps vs 120 fps and 100 fps vs 140 fps)

Anyway, the VP6 is a fast HW decoder but slower than QS, especially in huge bandwidth clips - on Duck take off has half speed, based on your numbers.

nevcairiel
24th February 2014, 23:08
4K videos scale differently on the two decoders, you can't take the range and deduce anything from it. :p

One of my 4K test clips which benchmarked at around ~100 on NVIDIA does ~110 on Intel.
The ducks clip does ~80 on Intel, and 60 on NVIDIA.

All tests with DXVA-CB or QuickSync, cannot benchmark DXVA-Native on Intel because DXVAChecker is crap and doesn't allow benchmarking on secondary GPUs, and my primary screen is on nvidia. :p

NikosD
24th February 2014, 23:11
DXVA-CB and QuickSync ?

No native figures for Intel ?

Then you have to use DXVA-CB for Nvidia too or even better to change to iGPU for DXVA native figures.

I do that easily by connecting at the same time both outputs one from dGPU and one from iGPU on the monitor and select the active GPU from drivers menu - Win 8/8.1 with ATI as dGPU.

BTW, DXVA Checker is one of the most useful programs - and the only one measuring HW decoding - for HTPC users.

I hope to have the chance to test it myself on my own samples - a VP6 vs GT1 comparison.

Thanks for the figures.

nevcairiel
24th February 2014, 23:24
On NVIDIA, the performance difference between -CB and Native is very minimal if you have a good CPU (nearly zero). But I did all tests with CB anyway, only checked a few samples with DXVAChecker in Native, and the performance was the same.
And I'm not switching around GPUs, it always scrambles the icons on my desktop :P

NikosD
24th February 2014, 23:29
I would say that CB and native are close when you have a fast GPU, than a fast CPU, although both are important along with memory speed.

About desktop icons, yes I remember I had that effect too, but just once.

If you setup both desktops at the same resolution, size, refresh rate etc, I think you won't see that again.

wanezhiling
25th February 2014, 02:45
The file seems to play fine on the 750, no artifacts anymore.
Wow thanks! The GREEN never disappoints me, not like the RED. ;):D

- H.264 4K decoding on low-bitrate clips can easily go up to 130 fps, or down to 60 fps on extremely high bitrates (ie. the 370Mbps ducks take off). On average it reached around 100 fps on "normal" clips I had around.
- H.264 1080p decoding is as reported yesterday, between 350 and 400 fps.
- VC-1 and MPEG-2 decoding speed increased similar, to ~410-440 fps at 1080p

Thanks for test and the useful info, "VP6" is a definitely fast HW decoder and very very close to Ivy Bridge.
Well Intel is a monster in decoding/encoding, like from other planet. lol

When NVIDIA finally releases the final version of CUDA SDK 6.0, maybe I can also find out how to do partial HEVC acceleration.
Great, let it happen.

Ava Pug
25th February 2014, 06:44
And I'm not switching around GPUs, it always scrambles the icons on my desktop :P

madshi made this

One thing that annoys me to no end, when doing the above described switch is that Windows likes to scramble the order of my carefully positioned desktop icons. So I've written a little helper tool which is able to save (to the registry) and restore the desktop icon positions. Here it is, in case anyone finds it useful:

http://madshi.net/DesktopPosSaver.zip

jkauff
25th February 2014, 13:04
madshi made this
There's also a wonderful little program by Stardock (costs a couple bucks) called Fences that lets you group your icons in named semi-transparent "corrals" on your desktop. The layouts are invulnerable to unwanted icon shuffling by Windows.

It's one of those utilities you don't know you need until you try it, then you can't live without it.

NikosD
25th February 2014, 15:56
When NVIDIA finally releases the final version of CUDA SDK 6.0, maybe I can also find out how to do partial HEVC acceleration.

Well, is seems that you might get involved faster with HEVC acceleration according to this:

14070

nevcairiel
25th February 2014, 20:11
I can't imagine it actually works, as we all know that Haswell doesn't actually have the hardware required (but it does show up for me as well).

Implementing a new codec for DXVA2 is quite a lot of work, and doing so without even knowing if it will work once its done leaves you in the position of not knowing if it just fails because the driver is lying to you, or if it fails because of bugs in my code.

NikosD
25th February 2014, 20:18
When I saw it for the first time I thought it's a driver's bug.

But because you never know, I posted it here.

Is there any way to check if it works, without going all the way ?

I can't think of any and I don't have the tools, I was hoping you can do the test if it really works.

nevcairiel
25th February 2014, 20:20
DXVAChecker already tests if you can actually create such a device, which apparently succeeds, but what ever happens when you try to decode with it ... who knows.
Maybe Intel does some magic in the drivers and does actually most of it in software ... or its just a slip-up and shouldn't be shown in the list at all.

DragonQ
25th February 2014, 21:02
Isn't that what they mean by "partial acceleration"? I'm sure I saw that in an article recently, where they said HEVC acceleration used both the CPU and GPU. Could be what you're talking about with the driver thing.

nevcairiel
25th February 2014, 21:11
But that was NVIDIA, the screenshot is from Intel. :p

NikosD
25th February 2014, 21:16
@nev

Maybe you could approach an Intel rep or Intel forums in order to understand better what is really going on.

If it actually works, in any way, I think that you would go for an actual decoder implementation.

HEVC is a very difficult codec even for quad-core Intel CPUs and any assistance, even if it's partial, it's very welcomed until actual full HW acceleration is available (next year probably)

clsid
26th February 2014, 19:33
AviSynth handling is unstable with AviSynth 2.5.8 (freezes/crash). This is a regression in the FFmpeg code. Afaik it used to work before this rewrite: http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=f0b234ab9e406efee85c17eb435db646092a943b

JEEB
26th February 2014, 19:53
Huh, I was under the impression that those issues were already more or less dealt with? Looking at this issue (https://trac.ffmpeg.org/ticket/2526). If it's not, I recommend someone to report it further.

Also, I think I've even had someone actually test 2.5.8 before, and it seemed to work. I am personally on 2.6, and wouldn't really recommend anyone to install anything older by now.

nevcairiel
26th February 2014, 20:01
AviSynth handling is unstable with AviSynth 2.5.8 (freezes/crash). This is a regression in the FFmpeg code. Afaik it used to work before this rewrite: http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=f0b234ab9e406efee85c17eb435db646092a943b

Like JEEB said, report the issues to FFmpeg. This is the wrong place.
Of course they are unlikely to fix, so if you need to use 2.5.8, submit a patch. :p

Smeulf
26th February 2014, 21:44
Hi,

First of all, thanks a lot for that incredible work you do all guys.

By posting today, I just want to point out what I think is a bug in the LAV splitter.

In the MKV standards for chapters, a chapter can be either disabled or hidden.

A disabled chapter must not be played, but a hidded chapter must be played, without beeing displayed in the user interface.

In the current implementation, both hidden and disabled chapters are not played, and then can result of some part of the video missing.

Documentation is here : http://www.matroska.org/technical/specs/chapters/index.html

Please take a look at "ChapterFlagHidden" and "ChapterFlagEnabled" tags definitions.

I really hope you'll been able to fix it in a future release.

Rgds.

Smeulf.

NikosD
26th February 2014, 22:13
Is there anyone building LAV filters often ?

Nightly builds from betaking here (http://pan.baidu.com/share/link?uk=2214911777&shareid=497331#dir/path=%2F%E8%87%AA%E7%BC%96%E8%AF%91%E8%BD%AF%E4%BB%B6) are on a very slow server.

filler56789
26th February 2014, 22:31
< ^ And to make things worse, the last nightly build of MPC-HC is one week old already :(

nevcairiel
26th February 2014, 22:40
In the current implementation, both hidden and disabled chapters are not played, and then can result of some part of the video missing.

Thats not correct, the only condition in the code is that the chapter needs to be enabled. The hidden flag is not checked for playback (only for listing the chapters in the UI).
In fact, I have a file I made myself which has a lot of ordered chapters, and only the actual movie chapters are flagged as visible, all others are hidden - and it plays fine.

Smeulf
26th February 2014, 22:49
Thats not correct

Well, I'll check again ;) I may have made a mistake. The strange part is that the same video played using Haali splitter was correct...

Maybe it's under certain circumstances.

Would you please nevcairiel PM me some sample of your own chapters ?

nevcairiel
26th February 2014, 22:59
No need to PM anything.

Here is the Chapter XML for my Blu-ray remux of Avatar, with all 3 editions:
http://pastebin.com/VbkGAfqS

It has several chapters which are Enabled and Hidden, and it works just fine like this.

Smeulf
26th February 2014, 23:03
Thanks nevcairiel, I'll check that against my own chapters, and report back in case I find something strange.

Cheers.

NikosD
27th February 2014, 06:53
I finally managed to download latest nightly build and found out some fixes of the below clips in DXVA Intel:


MPEG-2

Artifacts - Green stripe
http://www.sendspace.com/file/jm10xo - QS plays fine


You fixed the green stripe, but it has out of sync video and audio when you seek. It pauses video for a sec while playing audio.



MPEG-2

Doesn't start decoding (MPC-HC is OK)
ftp://helpedia.com/pub/multimedia/x264/testvideos/2010%20-%2009%20-%20DXVA%20benchmarks%20-%20Avivo%20vs%20PureVideo%20vs%20Clear%20Video/test-g1-1.mpg



That clips still doesn't start decoding with LAV, but MPC-HC decodes it fine.

Is it me ?


VC-1/WMV3

Every HW decoder has heavy artifacts, but QS is perfect with external LAV
MPC-HC refuses to decode it in QS!
http://www.sendspace.com/file/aep5vn


I'm going to report this to Intel support.


VC-1/WMV3

I put again this 2880 x 1080 VC-1 file, because I didn't get it from the first time, if it's a drivers problem or LAV.
QS plays fine.
http://www.sendspace.com/file/7o6usa


I reported that to Intel support and they closed above 1080p decoding for VC1_VLD2010 in the last driver!
So it falls back to software now.

VC1_IDCT and QS decoder are still open up to 4K and both decode it perfect.


VC-1/WMV3

I put again this file too, because it's broken again with green images at the beginning.
You have fixed it in the past, but it's broken again. Check MPC-HC too.
http://www.techpowerup.com/downloads/530/hd-dvd-demo-1080p-vc-1-ddplus-5-1/mirrors


Fixed.


H.264

Heavy artifacts and green distorted images at the beginning
http://www.sendspace.com/file/9p8xa0


Green screens disappeared at the beginning, but if you seek you can see artifacts.


H.264
It plays fine, but if seek you loose video/ audio sync. The image freezes but you can here the audio decoding
http://www.sendspace.com/file/b6uxc4

Fixed.

06_taro
27th February 2014, 09:09
Nev, a fix for installer ;)
pastebin (http://pastebin.com/yLauaWKv).


Is there anyone building LAV filters often ?

Nightly builds from betaking here (http://pan.baidu.com/share/link?uk=2214911777&shareid=497331#dir/path=%2F%E8%87%AA%E7%BC%96%E8%AF%91%E8%BD%AF%E4%BB%B6) are on a very slow server.

Here (http://tmod.nmm-hd.org/LAVFilters)'s a custom build, tweaked for my own use though....

nevcairiel
27th February 2014, 09:53
Nev, a fix for installer ;)

Thanks, I always forget updating that. Should find a better way...

NikosD
27th February 2014, 10:06
Here (http://tmod.nmm-hd.org/LAVFilters)'s a custom build, tweaked for my own use though....

Perfect.
It's a "rich" version with interesting batch files that I made myself too and all the readme files etc.

Let's see how long it will last, till server bandwidth saturation :)

Mercury_22
27th February 2014, 13:16
@Nev Why not enable rtmp & rtmpt protocols ?
Cause they are currently (in my builds :))working very well in lav for simple rtmp(t) links = without parameters.
Just add an warning to let user know about the current limitations

nevcairiel
27th February 2014, 13:19
People don't read warnings and I get lots of questions, so rather not.

Owyn
28th February 2014, 12:46
Can I play Hi10P videos correctly without MadVR? What's the best way (if there is)? I tried Sync Renderer + ffdshow = but ffdshow trayicon stated that color output wasnt P10 (I couldn't see artifacts thought)

(cuz madvr eats more resources that I can provide and I don't want to hear the audio sync noise - https://code.google.com/p/lavfilters/issues/detail?id=432&thanks=432&ts=1393587810 )

nevcairiel
28th February 2014, 12:47
No other renderer accepts 10-bit input, so it will be converted first.

Owyn
28th February 2014, 12:49
Sad ='(
but what do you mean "converted"? Will it be still shown "correctly"? In early Hi10P ages I remember if you played Hi10P video without its support - it gave video errors & artifacts.
So now it would just "convert" it to less colorfull but still correct picture, am I understanding this right?

JEEB
28th February 2014, 13:05
In case of 10bit 4:2:0 and 4:2:2 YCbCr content, it will be correctly dithered down to 8 bits. This is not a problem at all since you do not do lossy compression to this data after the fact. Calling it "less colorful" is quite incorrect in my opinion since while you do lose in the range of values available to you (as in, you can't be as specific in the middle of the range - both have the same max/min available), I would be damned if anyone saw the differences in the result in anything else but a specifically crafted scenario that specifically makes the dithered result look bad.

Taking 10bit YCbCr input in is better than 8bit YCbCr input, but one shouldn't overreact regarding dithering done after decoding in order to fit the content into a renderer that doesn't.

As for 8 and 10 bit 4:4:4 content, that will be converted straight into RGB for most renderers.

qtwebkit
28th February 2014, 14:24
Is there anyone building LAV filters often ?

Nightly builds from betaking here (http://pan.baidu.com/share/link?uk=2214911777&shareid=497331#dir/path=%2F%E8%87%AA%E7%BC%96%E8%AF%91%E8%BD%AF%E4%BB%B6) are on a very slow server.

Try this mirror (http://www.vdisk.cn/betaking):)

NikosD
28th February 2014, 14:46
Faster server, thanks.

filler56789
28th February 2014, 15:13
Try this mirror (http://www.vdisk.cn/betaking):)

Faster server, thanks.

For me, the download speed is around 5KB/s :mad:

kasper93
28th February 2014, 15:47
Use any download manager which use simultaneous connections. And it will be downloaded in a blink of an eye (http://i.imgbox.com/cWznjnS1.png). For this two folders I recommend JDownloader it will harvest all available files.

And please stop off topic :)

filler56789
28th February 2014, 18:45
All right --- I just would like to understand why nobody detects the offtopicness before I happen to jump into the offtopic wagon :) :D

ianken
28th February 2014, 19:42
Did a remux from MOV to MKV with PRORES (10bit 4:2:2) payload and while it plays in VLC it will not even connect pins in graph-edit using LAV filters... am I missing something obvious?

EDIT: OK, so the MOV plays fine. Only the remuxed MKV has issues. But the MOV has a ton of audio channels and I want to use FFMPEG to select the ones I want to keep and get it into a more flexible container. Any ideas how to get FFMPEG to make an MKV that works with LAV and PRORES? The MKV when you attempt to play it reports the video a "UNDF" so I suspect FFMPEG is borking the remux.

Output #0, matroska, to 'test.mkv':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
encoder : Lavf55.23.103
Stream #0:0(eng): Video: prores (apch / 0x68637061), yuv422p10le, 720x480 [SAR 32:27 DAR 16:9], q=2-31, 45979 kb/s,
23.98 fps, 1k tbn, 23976 tbc (default)
Metadata:
creation_time : 2014-02-20 17:18:14
handler_name : Apple Alias Data Handler
timecode : 00:00:00:00
Stream #0:1(eng): Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, 2304 kb/s (default)
Metadata:
creation_time : 2014-02-20 17:18:14
handler_name : Apple Alias Data Handler
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:7 -> #0:1 (copy)

kerimcem
1st March 2014, 16:31
http://i.hizliresim.com/KZazMz.jpg
lastet test bulid..wrong color mp4 files(dxva native) (mpc-be youtube record)

nevcairiel
1st March 2014, 17:00
What kind of graphics card and which driver version?

NikosD
1st March 2014, 17:05
One last clip H.264 interlaced:
http://www.sendspace.com/file/fzekte

With Haswell plays fine with Sandybridge was playing fine with 0.59.1 version, but now has green images for several seconds with 0.60.1 - only for Sandy.
Haswell still decodes it just fine with 0.60.1!


Fixed.


In CPU decoding of that interlaced clip, using default interlaced options, only 2 cores of a quad-core Core i5 - 2400 were used.
In playback and benchmarking mode (in order to push the CPU more)

I tried several other H.264 interlaced clips and the behavior was the same. 2 cores out of 4.
To be more exact, 50% utilization of a quad-core Core i5.

Strange.


CPU interlaced H.264 decoding not fixed.