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

kuchikirukia
26th June 2018, 17:50
Can someone tell me what's going wrong here? I'm trying to do make an encode with ordered chapters, but I'm finding that if you seek to the inserted section in MPC-HC and switch audio tracks, you get no audio after it goes through the transition. There are a couple episodes where it does work but several where it doesn't. It works in mpv and VLC, though in VLC the seek bar does some funky shit.

https://nofile.io/f/erMJ2hnpvXV/Main.zip

Emulgator
27th June 2018, 11:44
For systems that can not be updated beyond WinXP32SP3:
Which version is the last known to be working on WinXP32SP3?
0.70.2.80
0.70.2.82
0.70.2.83
0.70.2.88

kral2008
27th June 2018, 11:56
Guys,
Is there any way to decode 50 FPS streams in 25 FPS? I mean for ex. just forget about the half of the frames, and just select them once amoung.
This is because old PCs who haven't GPU/CPU accelerated H/W decoding, independent from bit-rate of HEVC streams, have problem with FPS. My experiments show that my old i7 740 QM laptop could play smoothly the following stream:

General
Unique ID : 146683291928339036295978944671459269582 (0x6E5A2CA738E21066867829611AD35BCE)
Complete name : F:\2018.2160p.UHD.BluRay.x265-.mkv
Format : Matroska
Format version : Version 4 / Version 2
File size : 16.2 GiB
Duration : 1 h 57 min
Overall bit rate mode : Variable
Overall bit rate : 19.7 Mb/s
Encoded date : UTC 2018-06-13 22:48:25
Writing application : mkvmerge v24.0.0 ('Beyond The Pale') 64-bit
Writing library : libebml v1.3.6 + libmatroska v1.4.9

Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Commercial name : HDR10
Format profile : Main 10@L5.1@High
Codec ID : V_MPEGH/ISO/HEVC
Duration : 1 h 57 min
Bit rate : 14.1 Mb/s
Width : 3 840 pixels
Height : 1 608 pixels
Display aspect ratio : 2.40:1
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0 (Type 2)
Bit depth : 10 bits
Bits/(Pixel*Frame) : 0.095
Stream size : 11.6 GiB (71%)
Writing library : x265 2.8+16-03dcb3457b7e:[Windows][GCC 6.3.0][64 bit] 10bit
Encoding settings : cpuid=1111039 / frame-threads=5 / numa-pools=36 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=3840x1608 / interlace=0 / total-frames=169496 / level-idc=51 / high-tier=1 / uhd-bd=0 / ref=4 / no-allow-non-conformance / repeat-headers / annexb / aud / hrd / info / hash=0 / no-temporal-layers / no-open-gop / min-keyint=1 / keyint=24 / gop-lookahead=0 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=25 / lookahead-slices=4 / scenecut=40 / radl=0 / no-intra-refresh / ctu=64 / min-cu-size=8 / rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=2 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / no-strong-intra-smoothing / max-merge=3 / limit-refs=3 / limit-modes / me=3 / subme=3 / merange=57 / temporal-mvp / weightp / no-weightb / no-analyze-src-pics / deblock=-3:-3 / no-sao / no-sao-non-deblock / rd=4 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=1.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=17.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / vbv-maxrate=160000 / vbv-bufsize=160000 / vbv-init=0.9 / crf-max=0.0 / crf-min=0.0 / ipratio=1.40 / pbratio=1.30 / aq-mode=1 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=9 / transfer=16 / colormatrix=9 / chromaloc=1 / chromaloc-top=2 / chromaloc-bottom=2 / display-window=0 / master-display=G(8500,39850)B(6550,2300)R(35400,14600)WP(15635,16450)L(40000000,50) / max-cll=2971,112 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / hdr / hdr-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=5 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-mv-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.2020
Transfer characteristics : PQ
Matrix coefficients : BT.2020 non-constant
Mastering display color primar : BT.2020
Mastering display luminance : min: 0.0050 cd/m2, max: 4000 cd/m2
Maximum Content Light Level : 2971 cd/m2
Maximum Frame-Average Light Le : 112 cd/m2

Audio #1
ID : 2
Format : TrueHD
Format profile : TrueHD+Atmos / TrueHD
Codec ID : A_TRUEHD
Duration : 1 h 57 min
Bit rate mode : Variable
Bit rate : 3 214 kb/s
Maximum bit rate : 5 520 kb/s
Channel(s) : Object Based / 8 channels
Channel positions : Object Based / Front: L C R, Side: L R, Back: L R, LFE
Sampling rate : / 48.0 kHz
Frame rate : 1 200.000 FPS (40 SPF)
Compression mode : Lossless
Stream size : 2.64 GiB (16%)
Language : English
Default : Yes
Forced : No

Audio #2
ID : 3
Format : DTS
Format/Info : Digital Theater Systems
Format profile : MA / Core
Codec ID : A_DTS
Duration : 1 h 57 min
Bit rate mode : Variable / Constant
Bit rate : 2 328 kb/s / 1 509 kb/s
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 kHz
Frame rate : 93.750 FPS (512 SPF)
Bit depth : 16 bits
Compression mode : Lossless / Lossy
Stream size : 1.92 GiB (12%)
Language : English
Default : No
Forced : No

Text
ID : 4
Format : PGS
Muxing mode : zlib
Codec ID : S_HDMV/PGS
Codec ID/Info : Picture based subtitle format used on BDs/HD-DVDs
Duration : 1 h 56 min
Bit rate : 20.6 kb/s
Count of elements : 2244
Stream size : 17.2 MiB (0%)
Title : SDH
Language : English
Default : No
Forced : No

Menu
00:00:00.000 : en:00:00:00.000
00:13:13.251 : en:00:13:13.251
00:24:04.234 : en:00:24:04.234
00:31:57.999 : en:00:31:57.999
00:39:57.061 : en:00:39:57.061
00:50:31.070 : en:00:50:31.070
01:04:49.844 : en:01:04:49.844
01:13:58.100 : en:01:13:58.100
01:20:17.396 : en:01:20:17.396
01:27:41.131 : en:01:27:41.131
01:38:41.624 : en:01:38:41.624
01:51:17.421 : en:01:51:17.421



But can't decode smoothly a recording TS from TRT 4K with this characteristics:

General
ID : 30801 (0x7851)
Complete name : C:\Users\abcdefghi\Downloads\20180626-212911_TRT 4K.ts
Format : MPEG-TS
File size : 1.03 GiB
Duration : 5 min 37 s
Overall bit rate mode : Variable
Overall bit rate : 26.0 Mb/s

Video
ID : 4855 (0x12F7)
Menu ID : 16300 (0x3FAC)
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main 10@L5.1@Main
Codec ID : 36
Duration : 5 min 38 s
Bit rate : 24.5 Mb/s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate : 50.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 10 bits
Bits/(Pixel*Frame) : 0.059
Stream size : 987 MiB (94%)

Audio
ID : 4955 (0x135B)
Menu ID : 16300 (0x3FAC)
Format : E-AC-3
Format/Info : Enhanced Audio Coding 3
Codec ID : 6
Duration : 5 min 37 s
Bit rate mode : Constant
Bit rate : 256 kb/s
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 kHz
Frame rate : 187.500 FPS (256 SPF)
Compression mode : Lossy
Delay relative to video : -524 ms
Stream size : 10.3 MiB (1%)
Service kind : Complete Main

Using LAV filter. This shows the problem is not the bitrate, but the framerate. So the possible solution could be skipping the half of the frames ?

LigH
27th June 2018, 12:10
@ Emulgator: Bad news (if correct)...

For people who still like WinXP - last working version of subj is LAVFilters-0.70.2-16

as quoted when manolito asked in Feb. 2018 (https://forum.doom9.org/showthread.php?p=1833765#post1833765).

kuchikirukia
27th June 2018, 12:48
Guys,
Is there any way to decode 50 FPS streams in 25 FPS?

Yes, an avisynth script with selecteven().
Though if you have old hardware I doubt you have a 4k monitor, so why not just reencode to 1080p?

Emulgator
27th June 2018, 12:50
Many thanks, Ligh, just confirmed. 0.70.2.16 installs on XPSP3.
From 0.70.2-29 on the installer stops, window pops up:
"This program does not support the version of Windows you're running."

kral2008
27th June 2018, 13:17
Yes, an avisynth script with selecteven().
Though if you have old hardware I doubt you have a 4k monitor, so why not just reencode to 1080p?

could you explain more about Avisynth ? and how I can use it.
Re-encoding is not a good option as the Hardware is weak!

nussman
27th June 2018, 13:31
If decoding is the problem then avisynth or a skip fields deinterlacer wont help because this step is after the decoder.

LigH
27th June 2018, 13:41
Skipping the decoding of every second frame is not a valid solution anyway, because modern video formats have complex dependencies between many frames, and simply not decoding one frame will cause decoding artifacts in all frames using just this skipped frame as a reference. In the best case, the skipped frame was a B frame in the middle of a dependency pyramide, using other references but not being reference itself; in the worst case, it was an IDR (or similar) frame, a start of a whole GOP.

kral2008
27th June 2018, 15:09
Skipping the decoding of every second frame is not a valid solution anyway, because modern video formats have complex dependencies between many frames, and simply not decoding one frame will cause decoding artifacts in all frames using just this skipped frame as a reference. In the best case, the skipped frame was a B frame in the middle of a dependency pyramide, using other references but not being reference itself; in the worst case, it was an IDR (or similar) frame, a start of a whole GOP.

This's a very precise answer.
Thank you so much. Yeah, I didn't consider this. yeah. This can cause serious problems. You are right.

Snowknight26
6th July 2018, 03:17
nevcairiel, with the recent TrueHD changes you released in 0.70.2, I've noticed that every now and then, pausing playback makes TrueHD bistreaming stop working. Resuming playback results in no sound and my receiver no longer recognizes the TrueHD stream as being passed through. The only way I can fix it is to stop/start playback (I presume this unloads/reloads all the DirectShow filters).

Is there some kind of logging or debugging I can enable to determine the culprit?

Edit: actually, resuming the playback after it was paused for several minutes (right after I noticed the issue) seemed to have fixed it. However, would still like to get to the bottom of this as it has been happening frequently with the latest version.

nevcairiel
6th July 2018, 09:46
Pausing bitstreaming is always a bit of an issue, because the AVR loses the bitstream sync no matter what you do, and specifically in DirectShow as well, because the audio decoder doesn't really control any of that. The renderer might still be buffering data, so even if the decoder tries to reset the bitstream on un-pause, there is no guarantee that it would work.

glith
8th July 2018, 13:39
Isnt it possible to continue sending empty bitsteam packets during pause to keep the sync?

Aleksoid1978
8th July 2018, 13:56
nevcairiel, with the recent TrueHD changes you released in 0.70.2, I've noticed that every now and then, pausing playback makes TrueHD bistreaming stop working. Resuming playback results in no sound and my receiver no longer recognizes the TrueHD stream as being passed through. The only way I can fix it is to stop/start playback (I presume this unloads/reloads all the DirectShow filters).

Is there some kind of logging or debugging I can enable to determine the culprit?

Edit: actually, resuming the playback after it was paused for several minutes (right after I noticed the issue) seemed to have fixed it. However, would still like to get to the bottom of this as it has been happening frequently with the latest version.

Can you try MPC-BE with internal filters ?

nevcairiel
8th July 2018, 14:21
Isnt it possible to continue sending empty bitsteam packets during pause to keep the sync?

Thats something the audio renderer would have to do, a decoder like LAV Audio cannot do this, because the audio renderer no longer accepts data in pause mode.

Snowknight26
19th July 2018, 12:08
Can you try MPC-BE with internal filters ?

Latest stable didn't seem to have any issues, latest nightly produced no sound.

BDFan
19th July 2018, 19:09
Hi nevcairiel!

D3D11 doesn't work with the nVidia Optimus on Intel GPU if in the nVidia control panel selected nVidia GPU.
http://i99.fastpic.ru/big/2018/0117/f4/a1bdb331af6c6d7538b483fb41dc2bf4.jpg
DXVA Checker shows that D3D11 enable on Intel GPU if in the nVidia control panel selected nVidia GPU.
http://i99.fastpic.ru/big/2018/0117/1e/bf52f2ca8fc9e36416f5de8582c9261e.jpg

Optimus is generally just not supported. Use it at your own discression, but don't expect anything to work. I do not provide support for such setups because they are impossible.
LAV has no control over what hardware is available. It'll just try to use it. If its unavailable due to Optimus, there is nothing I can do about that.

PotPlayer internal D3D11 Copy-Back video decoder works great with Optimus.
Proof.
http://www.hostpic.org/images/1807192328340103.jpg (http://www.hostpic.org/view.php?filename=1807192328340103.jpg)

LAV video decoder bug.
Please fix it!

VictorLS
19th July 2018, 20:48
All
Is any way (incl. using not LAV Filters but another video decoder - I tried Cyberlink, Elecard and Mainconcept with no success - or/and may be splitter) to watch properly (as TVsets does) h265 50(60)fps with normal horizontal resolution 720 in case of SD and 1920 in case of HD but half vertical resolution (so each frame is just field but not full frame) - in SD it's 288 instead of 576 and in HD it's 544 instead of 1088?
For example Zee TV20180716-203544.ts (24MB) https://disk.yandex.ru/i/5iZbCc3LRL8SKw - logo of the channel is blinking now when I set correct aspect ratio - important thing - it's realy 4:3 channel because of circle over ZEE TV (same channel in h264 broadcasting by another Russian provider is 4:3 too and logo is monolith).
I think must be such Force weave option somewhere - am I wrong?

LigH
19th July 2018, 21:02
Seems you want to have only either the odd or the even fields displayed, skipping the opposite field.

VictorLS
19th July 2018, 21:20
LigH
No, because vertical sharpness and fluent playing will be lost. I want get from ZEE TV example 720x576p50 without flickers - maximum quality on PC as on TVsets.

LigH
19th July 2018, 21:39
Sorry, I got confused by you even mentioning "half vertical resolution" at all. Now that I see the sample video, I understand the issue: This video has been encoded with fields like frames, but they are not handled like fields of interlaced video, instead like completely separate frames.

H.265 should be broadcasted as progressive content only. The original specs did not even mention interlacing, I believe to remember ... HEVC wanted to make it obsolete. Some encoders may still create "interlaced HEVC" treating fields separately. But these fields should still be organized as pairs making a whole frame. This is not the case in your sample. It looks like a result of AviSynth's SeparateFields() function.

Decoders like LAV Filters don't recognize these frames as pairs of fields, so they won't offer a weave feature. This may require to process the video separately in e.g. AviSynth with Weave(), and then you should not re-encode the result as HEVC (H.265), instead as interlaced AVC (H.264) – if it is truly interlaced at all (I did not check that).
_

Remark: 720 lines is still HD. SD is only up to 576 lines (conventional PAL).

VictorLS
19th July 2018, 22:01
This video has been encoded with fields like frames, but they are not handled like fields of interlaced video, instead like completely separate frames.
You're quite right.
About 720 lines - if you read more carefully I meant not lines but columns ;)
Most of PAL channels has 720 horizontal resolution but I saw 768 and 544 to (anamorph or non-square pixels).
Writing must be such Force weave option I meaning ~ AviSynth with Weave() but I want still have hardware acceleration of such files. I think one of the possible ways to get what I want is add ffdshow raw filter between decoder and renderer? Or may be nevcairiel just add one more Deinterlacing mode in LAV Video Decoder...

LigH
19th July 2018, 23:04
The number of pixels per line is not really helpful. Depending on the aspect ratio common for the medium (e.g. DVD, SVCD, DVB, or deskewed), you can have PAL with 576 lines and 352 / 480 / 544 / 704 / 720 and even 768 or 1024 pixels. But you always need 576 lines for PAL, it might be interlaced.

Deinterlacing options will process pairs of fields to make frames. But it will not process pairs of frames.

huhn
20th July 2018, 05:52
the file is 50 FPS it can't be interlanced there is no spec for it.
an intelranced file needs 30 or 25 frames per sec.

and the file is progressive flagged anyway a deintelrancer has nothing todo with it.
and the file reports a AR of 40/11.

so the file is incorrectly encoded
or the file is incorrectly stored in the container.

using WAEVE() turns an progressive file into an interlanced file why should lavfilter ever do this even more important why should an interlancer be added as an deinterlancer...

foxyshadis
20th July 2018, 06:04
You just need to use Avisynth/Vapoursynth/Virtualdub2 to re-encode this horribly butchered encode. No one is going to add support for this. I have no idea why they didn't just use H.264 if they wanted interlaced; it would probably have been more efficient with MBAFF anyway.

sneaker_ger
20th July 2018, 12:59
the file is 50 FPS it can't be interlanced there is no spec for it.
HEVC specs do allow interlacing. But AFAIK LAV+MPC-HC don't support it correctly. (Irregardless of whether or not his file is or isn't violating specs.)

clsid
20th July 2018, 14:20
There is a ticket on the FFmpeg bug tracker about such HEVC files:
http://trac.ffmpeg.org/ticket/4141

clsid
20th July 2018, 14:29
PotPlayer internal D3D11 Copy-Back video decoder works great with Optimus.The NVIDIA driver contrains profiles for various games/apps that specify which GPU is used. You can use NVIDIA Profile Inspector (https://ci.appveyor.com/project/Orbmu2k/nvidiaprofileinspector/build/artifacts) to customize/add profiles.

huhn
20th July 2018, 14:43
HEVC specs do allow interlacing. But AFAIK LAV+MPC-HC don't support it correctly. (Irregardless of whether or not his file is or isn't violating specs.)

lovely is doesn't output 25 fps frames per sec with that it would be ok because the last step of decding is skipped?

and i just said there is no spec for 50 FPS 100 fields yet and hopefully never will be.

VictorLS
20th July 2018, 15:46
and i just said there is no spec for 50 FPS 100 fields yet and hopefully never will be.
I didn't say about 100 fields - I said about 50 full frames which must be get from "50 half vertical resolution frames" = "50 progressive fields" with same deinterlacing method like ordinary (352,480,544,704,720,768,1024)x576i50fields SD TV video from SAT :)

huhn
20th July 2018, 16:08
sorry but i'm not going to discuss the basics of interlancing here. progressive fields...

the file is wrongly decoded or still wrongly created.
it may get fix for software decoding but for hardware decoder not sure if anyone else than the GPU producer can fix this mess.
i there even a spec for hardware interlanced HEVC decoding?

VictorLS
20th July 2018, 16:24
sorry but i'm not going to discuss the basics of interlancing here.
OK.
still wrongly created.
Perhaps because I believe answer on your question
is there even a spec for hardware interlanced HEVC decoding?
is NO, there isn't so SAT provider has to translate interlaced SD and FullHD video as serial "progressive half vertical resolution frames"=fields. And several people has modern TVset with internal SAT tuners (even with CI+) said all good with channels h265 like ZEE TV but nobody said PC plays that file well (with solid circle around ZEE TV logo) even if aspect ratio is right = 4:3...Why computer worse than TVsets?

nussman
20th July 2018, 17:28
SAT provider can translate interlaced SD and FullHD (fields) to HEVC (frames) by using a (good) deinterlacing filter.
"Reverse Deinterlacing" for "bad" deinterlacing" by Sat providers is not supported by GPU's nor LAV software.

huhn
20th July 2018, 17:47
clsid already postet everything we need to know: https://forum.doom9.org/showpost.php?p=1846662&postcount=22970

VictorLS
20th July 2018, 20:40
SAT provider can translate interlaced SD and FullHD (fields) to HEVC (frames) by using a (good) deinterlacing filter.
I agree - i.e. Vector Adaptive Deinterlacer - it's best way but one SAT provider decided to put more channels in one transponder, so we must to work with it as is...

Arm3nian
21st July 2018, 07:39
PotPlayer internal D3D11 Copy-Back video decoder works great with Optimus.


LAV video decoder bug.
Please fix it!

With UHD AVC, neither iGPU or nvidia GPU decoding works with any of the methods.

But with UHD HEVC (4k bluray) everything works.

Optimus is broken in general. Doesn't even work with RemoteFX in Hyper-V. The whole idea of rendering on a separate gpu, then passing the data to the iGPU is disgusting.

BDFan
21st July 2018, 15:55
Optimus is broken in general.
Good developers have no problems.
All players works, madVR works (window and exclusive mode), PotPlayer internal D3D11 decoder works, only LAV Filters fail.


With UHD
I dont have 4k TV. I dont know.

nevcairiel
21st July 2018, 15:58
I have no interest in supporting Optimus. Feel free to contribute patches if you think it's so easy and have access to such hardware.

hobbs1
23rd July 2018, 18:38
Hey Nev, getting an insecure connection warning from your site.

files.1f0.de uses an invalid security certificate.

The certificate expired on Monday, July 23, 2018 7:08 AM. The current time is Monday, July 23, 2018 10:35 AM.

Error code: SEC_ERROR_EXPIRED_CERTIFICATE

VictorLS
23rd July 2018, 22:38
https://ffmpeg.zeranoe.com/builds/ ffplay.exe x64 from ffmpeg-4.0.1-win64-static.zip plays Zee TV20180716-203544.ts (24MB) https://disk.yandex.ru/i/5iZbCc3LRL8SKw - from previous page https://forum.doom9.org/showthread.php?t=156191&page=1149 plays (without sound) that ts well using ffplay.exe -vf weave,yadif=1 "Zee TV20180716-203544.ts" string was given me by clever Russian guy so I hope it'll be not very hard to implement right decoding of such files in LAV Filters.

LigH
24th July 2018, 08:43
Implementing a weave is not too hard, I believe. But implementing the logic to detect incorrectly interlaced HEVC may be. And you won't want to manually enable forced weaving for every video separately.

VictorLS
24th July 2018, 10:13
LigH
Usually I like automation (as I wanted to force switch off high quality deinterlacing on some "bad interlaced streams" for hardware decoder in nVIDIA's videocards - but it wasn't implemented even in manual mode immediately by nevcairiel so I switch it off forever after implemented by Aleksoid1978, some time later I think after many asks by another users of LAV Filters nevcairiel implemented too but not automatic) if it works correctly but if it's too hard to implement or it can works incorrectly I'd like have just manual control i.e. Force weave as I mentioned at first post on previous page.

sirhaden
24th July 2018, 22:09
I'm using multiple instances of the DirectShow LAVVideo decoder to decode several streams simultaneously. The video is H.264 and is in MKV, MP4 and a proprietary container format files. The H.264 in the MKV and proprietary container are both Annex-B prefixed and the decoders run simultaneously without issue. No frame drops or decoder errors. The H.264 is the MP4 files is not Annex-B, the only known difference, and decoding with multiple instances causes the decoders to throw many NAL parsing errors. The result is that frames are dropped randomly from these simultaneous decoder instances.

mkver
24th July 2018, 23:15
Actually, H.264 in Matroska mustn't be annex B; it must use the same length-prefixed mode that mp4 uses as well.

nevcairiel
24th July 2018, 23:18
I'm using multiple instances of the DirectShow LAVVideo decoder to decode several streams simultaneously. The video is H.264 and is in MKV, MP4 and a proprietary container format files. The H.264 in the MKV and proprietary container are both Annex-B prefixed and the decoders run simultaneously without issue. No frame drops or decoder errors. The H.264 is the MP4 files is not Annex-B, the only known difference, and decoding with multiple instances causes the decoders to throw many NAL parsing errors. The result is that frames are dropped randomly from these simultaneous decoder instances.

There is no global state in decoding that i'm aware of that would ever cause one instance to influence another one. Are you sure those errors don't happen when decoding single files, which might indicate something is wrong with how the files are being send to the decoder?

sirhaden
24th July 2018, 23:18
Actually, H.264 in Matroska mustn't be annex B; it must use the same length-prefixed mode that mp4 uses as well.

Both work in the MKV container.

sirhaden
25th July 2018, 12:12
The decoder error messages are such:

[h264 @ 03d4dec0] Invalid NAL unit size (24584278 > 2879).
[h264 @ 03d4dec0] Error splitting the input into NAL units.
[h264 @ 2146bf80] Invalid NAL unit size (28985 > 28748).
[h264 @ 2146bf80] Error splitting the input into NAL units.
[h264 @ 03d4dec0] Invalid NAL unit size (598628684 > 3370).
[h264 @ 03d4dec0] Error splitting the input into NAL units.
[h264 @ 2146bf80] Invalid NAL unit size (22491 > 21484).
[h264 @ 2146bf80] Error splitting the input into NAL units.
[h264 @ 2146bf80] Invalid NAL unit size (-1019633513 > 94).
[h264 @ 2146bf80] Error splitting the input into NAL units.
[h264 @ 03d4dec0] Invalid NAL unit size (-545420300 > 3047).
[h264 @ 03d4dec0] Error splitting the input into NAL units.
[h264 @ 03d4dec0] Invalid NAL unit size (-1424184330 > 22).
[h264 @ 03d4dec0] Error splitting the input into NAL units.
[h264 @ 03d4dec0] Invalid NAL unit size (24977 > 20414).
[h264 @ 03d4dec0] Error splitting the input into NAL units.
[h264 @ 2146bf80] Invalid NAL unit size (1875228973 > 4829).
[h264 @ 2146bf80] Error splitting the input into NAL units.
[h264 @ 2146bf80] Invalid NAL unit size (22326 > 21586).

nevcairiel
25th July 2018, 12:34
Those errors usually happen if you try to pass off AnnexB as MP4-style H.264, or the media type indicates a wrong size of the length field.

sirhaden
25th July 2018, 13:36
Those errors usually happen if you try to pass off AnnexB as MP4-style H.264, or the media type indicates a wrong size of the length field.

The MP4 video frames are all length prefixed.

The length prefixed IDR video frames do have length prefixed Access Unit Delimiters, SPS and PPS NALUs preceding them.

The non-IDR video frames contain only a length prefixed Access Unit Delimiter following by the length prefixed video frame.

nevcairiel
25th July 2018, 17:32
If you're certain the video is fine, then you may still be delivering it to the decoder wrong. I assume you use your own source filter, and not LAV Splitter?
My guess would be that the media type doesn't match the video contents.