Neil Mohr takes you on a tour of video codecs for the ul­ti­mate the­ater-qual­ity ex­pe­ri­ence

Maximum PC - - FRONT PAGE -

Achieve the per­fect movie ex­pe­ri­ence ev­ery time

WHY IS PLAY­ING VIDEO so com­pli­cated? Why does it play smoothly in one pro­gram, but not an­other? Why can you play it on this sys­tem, but not that one? Why does it stream OK, but not play lo­cally? How can the video play, but not sound? How do you get sub­ti­tles to dis­play? Why is the au­dio only in stereo, not sur­round? How come the col­ors are drab? All those ques­tions have come from the mouths of peo­ple who had the au­dac­ity to try to play video.

Be­fore you throw your PC out the win­dow, we’re of­fer­ing you a mas­ter­class in video play­back. We’ll ex­plain the com­plex­i­ties of the Win­dows video pipe­line (you’ll see why things can be­come so dif­fi­cult to di­ag­nose), and dis­cuss what soft­ware you need to get the best play­back with­out the has­sle, along with how to in­stall and tweak it to per­fec­tion. Along the way, we’ll see what hard­ware ac­cel­er­a­tion you can use, dis­cuss the mad­ness of the codec world, en­sure sound isn’t ne­glected, and cover 4K and HDR con­tent, too.

You could very eas­ily ar­gue that lo­cal video play­back has be­come re­dun­dant any­way, be­cause stream­ing ser­vices have pushed con­tent on­line, and that’s where most peo­ple con­sume their en­ter­tain­ment. We’re not go­ing to ar­gue with that, but if you still want to re­tain own­er­ship of your paid-for movies and video, the only true way to do so is to have a lo­cal copy, oth­er­wise you’re re­ally only bor­row­ing it from a copy­right holder un­der the guise of a li­cense. We don’t want to get bogged down in the phi­los­o­phy of it all, so in­stead we’re go­ing to get bogged down in codecs—this should be fun....

THERE’S NO SUCH THING as a video player. Any­thing you think is a video player is ac­tu­ally just an elab­o­rate black box, which hap­pens to pull to­gether a host of func­tions and fea­tures to make a mov­ing im­age ap­pear on your screen and au­dio pour out your speak­ers—all at the same time, in­cred­i­bly, and in sync, down to the mil­lisec­ond.

To un­der­stand how that black box works, we’ll kick things off by tak­ing a look at what goes into the video pipe­line, from source to tar­get. This will help us un­der­stand how the var­i­ous el­e­ments plug to­gether to de­code, ma­nip­u­late, and out­put our video and au­dio. We can then drill down into the in­di­vid­ual blocks of the pipe­line, and ex­plain how to get the best from each part, and what’s re­ally needed.

The lan­guage used tends to be flex­i­ble. Mi­cro­soft Direc­tShow is the Win­dows sys­tem used to man­age the flow of video data, and it refers to codecs as fil­ters— largely be­cause “codec” is a re­dun­dant term, as it means “(en)COderDECoder,” and in this con­text, they’re largely just de­coder fil­ters. We’ll cover dif­fer­ent terms as we come across them. Along­side that, read the “Just Get This…” box, and grab the sug­gested codec pack, plus Me­dia Player Clas­sic (MPC) from https://mpc-hc.org, to en­sure we’re all us­ing the same soft­ware when­ever we talk about set­tings and so on.

At the start is the source. That’s usu­ally a sin­gle video file, but even this is com­pli­cated. When deal­ing with a player such as MPC, you can spec­ify sep­a­rate video, au­dio, and sub­ti­tle files, and it com­bines them into a co­he­sive out­put. Video and au­dio tracks in MPC are loaded via “File > Open File,” with sub­ti­tles loaded via “File > Sub­ti­tles,” though sub­ti­tles con­tained within a file are con­trolled via the De­mux and Sub­ti­tle fil­ter, which we’ll come to.

Th­ese days, a sin­gle video file is ac­tu­ally a con­tainer file for­mat. Fa­mously, there’s AVI, MP4, and MKV. Ide­ally, a con­tainer for­mat should of­fer a flex­i­ble way for a sin­gle file to con­tain mul­ti­ple video, au­dio, and sub­ti­tle tracks. This largely ex­plains the rise in pop­u­lar­ity of MKV; it’s open source, and sup­ports al­most all the fea­tures you could want, over and above AVI and MP4.

Be­fore we can do any­thing with the con­tainer file, we need a fil­ter that can split the var­i­ous parts into sep­a­rate streams. This is called de­mul­ti­plex­ing, or the De­mux stage—a more lay­man’s term is a split­ter. If you’re fol­low­ing our ad­vice in the “Just Get This” box, it’s the LAV Split­ter—other split­ters ex­ist, such as the Haali Me­dia Split­ter. Set­tings (via the LAV Split­ter pref­er­ences) can largely be set to de­fault here, un­less you hap­pen not to be an English speaker, in which case you need to spec­ify your pre­ferred lan­guage for any au­dio and sub­ti­tles, so they can be picked up au­to­mat­i­cally if avail­able.

SUB­TI­TLES We’re go­ing to tackle the sub­ti­tle stream first, as it’s quite straight­for­ward. Sub­ti­tles can be in­ter­nal ones or ex­ter­nal ones you’ve down­loaded—for the lat­ter, th­ese are just text files with time­stamps and trans­lated lines. And, yes, you can cre­ate your own com­edy ones if you like. K-Lite uses the long-stand­ing Direc­tVobSub fil­ter, which of­fers place­ment, type­face, as­pect ra­tio, and load­ing con­trols. It looks for suit­ably named sub­ti­tle files in the same folder as the video file, in a “\sub­ti­tle” folder along­side the video file, or in a “c:\sub­ti­tles” folder. The file needs to be named ex­actly the same as the orig­i­nal video file, mi­nus any ex­ten­sion, such as .mkv or .mp4. If you have is­sues with your vi­sion, the place­ment and size set­tings can be very use­ful. For in­ter­nal sub­ti­tles, use the MPC set­tings. Choose the re­quired sub­ti­tles from “Play > Sub­ti­tles track.” It has very sim­i­lar con­trols un­der “View > Op­tions > Sub­ti­tles set­tings.”

SOUND Get­ting the cor­rect sur­round sound from a Win­dows sys­tem to an ex­ter­nal amp or de­vice can be frus­trat­ing. This is largely down to the num­ber of non-ob­vi­ous driv­ers, dif­fer­ent set­tings at each stage, phys­i­cal out­puts, and com­pat­i­bil­ity is­sues with DRM and modern dig­i­tal au­dio for­mats.

The first step is to check Win­dows is out­putting au­dio to the cor­rect de­vice. Right-click the no­ti­fi­ca­tion “Speaker” icon, and se­lect “Play­back de­vices.” Win­dows lists all the au­dio de­vices it thinks it can send au­dio to. Built-in au­dio typ­i­cally of­fers sep­a­rate ana­log and dig­i­tal out­put. Suit­able HDMI dig­i­tal de­vices are also listed, while there may be ad­di­tional de­vices with au­dio out­put, too. If there’s no sound to be heard, it’s likely the wrong de­vice is se­lected here. You can also con­fig­ure the ba­sic setup, and tell Win­dows whether this is a stereo or sur­round sys­tem. How­ever, sys­tems run­ning Real­tek au­dio might have the

com­pany’s pro­pri­etary pref­er­ence sys­tem, where all this can be con­fig­ured, too.

We’re be­hind the times with au­dio, so we’re still run­ning a 5.1 sur­round sys­tem us­ing stereo ana­log jacks—that’s a jack per speaker pair, and one to han­dle both the sub and cen­ter speak­ers. The main rea­son is it forces de­cod­ing of any dig­i­tal au­dio to the dis­crete sur­round chan­nels. Oth­er­wise, you need to pipe the raw dig­i­tal sig­nal down what­ever dig­i­tal con­nec­tion you’re us­ing. The prob­lem is, if your amp doesn’t sup­port that dig­i­tal sig­nal, you hear noth­ing, or the out­put de­vice could fall back to stereo PCM au­dio, which won’t make any­one happy.

As part of the K-Lite pack, LAV Au­dio is the main fil­ter con­trol for your au­dio. We’ll look at us­ing a dig­i­tal au­dio de­vice—think HDMI-con­nected de­vice like a TV, or an AV amp via HDMI or op­ti­cal—oth­er­wise it’s an ana­log con­nec­tion. For dig­i­tal movies, you’ll want to en­able bit-stream­ing—as long as your ex­ter­nal de­vice sup­ports those for­mats—so the dig­i­tal au­dio is streamed un­mo­lested.

For ana­log tar­gets, things aren’t much more com­plex, but you’ll want to spec­ify the cor­rect sur­round setup within the LAV Au­dio “Mixer” tab. Ad­di­tion­ally, MPC has ex­tended au­dio con­trols, if you need them, un­der “View > Op­tions > In­ter­nal Fil­ters > Au­dio Switcher.” Nor­mal­iza­tion helps boost quiet dia­log; there’s also a cus­tom chan­nel mixer, so you can spec­ify what chan­nel goes to which speaker. When it comes to play­ing video, if there are mul­ti­ple au­dio tracks—such as di­rec­tor’s com­men­tary, English au­dio, or de­scrip­tion au­dio—se­lect al­ter­na­tives us­ing “Play > Au­dio track.”

VIDEO Sub­ti­tles are read­ing right, au­dio sounds su­per, now we can turn to the video. LAV Video is the de­code fil­ter that de­liv­ers sup­port for all the ma­jor for­mats, along with hard­ware ac­cel­er­a­tion sup­port for In­tel Quick Sync, Nvidia CUVID, and DXVA2 na­tive/copy-back. If you don’t have a GPU, In­tel Quick Sync is bet­ter than noth­ing, but it can cause qual­ity is­sues on older pro­ces­sors; Nvidia CUVID is some­what out­dated; while DXVA2 is the fa­vored op­tion.

DXVA2 copy-back mode can en­able higher qual­ity video than na­tive, as more fil­ters can be ap­plied, but it can in­crease the GPU load by three times. Na­tive mode is faster, as the video data never leaves the GPU mem­ory. You’ll find the LAV Video set­tings tool in the K-Lite folder. Out­side of hard­ware ac­cel­er­a­tion, you don’t need to ad­just any­thing, though we’d set “RGB Out­put Lev­els” to “PC (0 to 255),” oth­er­wise you’ll get point­less color space con­ver­sions.

We’ve largely been ig­nor­ing the need for a player, un­til now, but as we’ve come to ac­tu­ally play­ing video, it’s worth haul­ing MPC into view. The open-source Me­dia Player Clas­sic has been the first choice of video player for years, but un­for­tu­nately, the 2017 re­lease was the fi­nal one of the orig­i­nal main­tainer. Thank­fully, it seems some of the de­vel­op­ers on http://fo­rum. doom9.org are main­tain­ing it with bug fixes.

MPC has loads of set­tings, but for video play­back, we want “Op­tions > Play­back > Out­put”—the Direc­tShow Video pull­down en­ables you to se­lect a ren­derer. The En­hanced Video Ren­derer ( cus­tom pre­sen­ter) would do, but we’re here to cover 4K HDR play­back, which throws up is­sues that stan­dard PC play­ers can’t han­dle. The cur­rent so­lu­tion is to use a ren­derer called MadVR, se­lected from here, but it has its own set­ting tool in the K-Lite folder.

HDR HEADACHES What’s the is­sue with HDR, then? If you’re view­ing HDR con­tent from a PC, there can

eas­ily be a break­down of com­mu­ni­ca­tion be­tween the dis­play and the PC, even with an HDR setup. Typ­i­cally, it’s the dis­play not real­iz­ing it’s be­ing fed an HDR sig­nal, but the PC can be equally clueless about hav­ing an HDR-ca­pa­ble dis­play at­tached. The so­lu­tion is to process the HDR video file as it’s be­ing dis­played to a stan­dard color range. This isn’t a sim­ple process—ev­ery frame has to be pro­cessed, and when you’re deal­ing with a 4K res­o­lu­tion, that re­quires some se­ri­ous CPU/GPU grunt, which is ex­actly what MadVR de­liv­ers, along with a bunch of other abil­i­ties.

MadVR’s full name is Mad­shi Video Ren­derer, and it’s reg­is­tered as a Direc­tShow Ren­derer Fil­ter. As men­tioned, you se­lect it within MPC and other com­pat­i­ble play­ers as the ren­derer. You’ll find a MadVR set­ting tool within the K-Lite app folder, and when a video is play­ing, a con­trol icon ap­pears in the no­ti­fi­ca­tion area, with short­cuts to the set­tings.

The short an­swer on how to get cor­rect HDR play­back us­ing MadVR is to pop into “Set­tings > De­vices > [your dis­play] > Iden­ti­fi­ca­tion.” Se­lect the cor­rect de­vice type—it’ll get a pretty icon as a re­ward. “Prop­er­ties” are prob­a­bly cor­rect, un­less you have a dis­play with 10-bit color depth; “RGB lev­els” should be 0 to 255, as al­ways. Jump to “HDR,” as the rest should be fine with de­faults. You can stick with “Let MadVR de­cide,” and it’ll do its best to try to de­tect what your GPU and dis­play are ca­pa­ble of. But if col­ors are re­ally muted, you need to man­u­ally se­lect the cor­rect mode. If you have an HDR-ca­pa­ble dis­play and GPU, se­lect­ing “Passthrough HDR con­tent to the dis­play” is your best choice, be­cause it al­lows the dis­play to do the pro­cess­ing, and is your only op­tion for Dolby Vi­sion con­tent.

“Con­vert HDR con­tent to SDR us­ing pixel shader math” is the mostly likely op­tion to choose if you don’t have an HDR-ca­pa­ble dis­play or GPU. You can largely leave the set­tings as you find them; there is an op­tion to ad­just the max­i­mum “nits,” but 200 is sen­si­ble, even if a dis­play sup­ports brighter.

The fi­nal op­tion we’ll con­sider is “Process HDR con­tent by us­ing pixel shader math.” This is the op­tion if you have an HDR­ca­pable dis­play and GPU, but want to let MadVR do the HDR pro­cess­ing, which would be an odd thing to do, frankly. We’re go­ing to skip over the two LUT-based op­tions, as we’re not go­ing into cre­at­ing a cus­tom 3D look-up ta­ble for your dis­play.

At this point, you’d be fine to en­joy 4K HDR play­back even on mod­est hard­ware sport­ing a suit­able GPU. If you’re in­ter­ested in the other op­tions, most are for scal­ing, smooth­ing, and dither­ing. Largely, we’d rec­om­mend any DXVA2 as the fastest op­tion. “Smooth Mo­tion” un­der “Ren­der­ing” is one op­tion that can help elim­i­nate jud­der due to mis­matched re­fresh rates—the de­fault “Only if there would be mo­tion jud­der” is the best to choose.

We’re stand­ing on the shoul­ders of the gi­ant brains over at http://fo­rum.doom9. org, so if you’re at all in­ter­ested in video qual­ity, en­cod­ing, play­back, and codec tech­nol­ogy in gen­eral, check it out for years’ worth of archived posts and help.

“Typ­i­cally, the dis­play doesn’t re­al­ize it’s be­ing fed HDR, but the PC can be equally clueless.”

Com­pare the out­put of HDR con­tent with and with­out pro­cess­ing.

Cus­tom Comic Sans sub­ti­tles is what the world was cry­ing out for.

The main video fil­ter con­trols add a lit­tle hard­ware ac­cel­er­a­tion here.

En­sure you get de­cent sound lev­els and the cor­rect chan­nel mix­ing.

Newspapers in English

Newspapers from Australia

© PressReader. All rights reserved.