Giter VIP home page Giter VIP logo

lavfilters's Introduction

LAV Filters - ffmpeg based DirectShow Splitter and Decoders

LAV Filters are a set of DirectShow filters based on the libavformat and libavcodec libraries
from the ffmpeg project, which will allow you to play virtually any format in a DirectShow player.

The filters are still under development, so not every feature is finished, or every format supported.

Install
=============================
- Unpack
- Register (install_*.bat files)
	Registering requires administrative rights, and an elevated shell ("Run as Administrator")

Using it
=============================
By default, the splitter will register for all media formats that have been
tested and found working at least partially.
This currently includes (but is not limited to)
	MKV/WebM, AVI, MP4/MOV, TS/M2TS/MPG, FLV, OGG, BluRay (.bdmv and .mpls)

However, some other splitters register in a "bad" way and force all players
to use them. The Haali Media Splitter is one of those, and to give priority
to the LAVFSplitter you have to either uninstall Haali or rename its .ax file
at least temporarily.

The Audio and Video Decoder will register with relatively high merit, which should make
it the preferred decoder by default. Most players offer a way to choose the preferred
decoder however.

Automatic Stream Selection
=============================
LAV Splitter offers different ways to pre-select streams when opening a file.
The selection of video streams is not configurable, and LAV Splitter will quite simply
pick the one with the best quality.

Audio stream selection offers some flexibility, specifically you can configure your preferred languages.
The language configuration is straightforward. Just enter a list of 3-letter language codes (ISO 639-2),
separated by comma or space.
For example: "eng ger fre". This would try to select a stream matching one of these languages,
in the order you specified them. First, check if an English track is present, and only if not,
go to German, and after that, go to French.

If multiple audio tracks match one language, the choice is based on the quality. The primary attribute here
is the number of channels, and after that is the codec used. PCM and lossless codecs have a higher priority
than lossy codecs.

Subtitle selection offers the most flexibility.
There are 4 distinct modes of subtitle selection.

"No Subtitles"
This mode is simple, by default subtitles will be off.

"Only Forced Subtitles"
This mode will only pre-select subtitles flagged with the "forced" flag. It'll also obey the language preferences, of course.

"Default"
The default mode will select subtitles matching your language preference. If there is no match, or you didn't configure
languages, no subtitles will be activated. In addition, subtitles flagged "default" or "forced" will always be used.

"Advanced"
The advanced mode lets you write your own combinations of rules with a special syntax. It also allows selecting subtitles
based on the audio language of the file.

The base syntax is simple, it always requires a pair of audio and subtitle language, separated by a colon, for example: "eng:ger"
In this example, LAV Splitter would select German subtitles if English audio was found.

Instead of language codes, the advanced mode supports two special cases: "*" and "off".
When you specify "*" for a language code, it'll match everything. For example "*:eng"  will activate English subtitles, independent
of the audio language. The reverse is also possible: "eng:*" will activate any subtitles when the audio is English.

The "off" flag is only valid for the subtitle language, and it instructs LAV Splitter to turn the subtitles off.
So "eng:off" means that when the audio is English, the subtitles will be deactivated.

Additionally to the syntax above, the following flags can be appended to the subtitle token separated by a pipe symbol ("|"):
 - "d" for default subtitles
 - "f" for forced subtitles
 - "h" for hearing impaired
 - "n" for normal streams (not default, forced, or impaired).
In addition, you can also check for the absence of flags by preceding the flags with a "!".
The advanced rules can be combined into a complete logic for subtitle selection by just appending them, separated with a comma or a space.
The rules will always be parsed from left to right, the first match taking precedence.

Finally, the rules can match the name of a stream, with some limitations. Only single words can be matched, as spaces are a separator for the next token.
A text match can be added to the end of the token with an @ sign.

Example: (basic flag usage)
  "*:*|f"
Explanation:
  On any audio language, load any subtitles that are flagged forced.

Example: (basic ruleset)
  "eng:eng|f eng:ger|f eng:off *:eng *:ger"
Explanation:
  If the audio is English, load an English or a German forced subtitle track, otherwise, turn subtitles off.
  If the audio is not English, load English or German subtitles.

Example: (flag usage with negation)
  "jpn:ger|d!f"
Explanation:
  In the Japanese language, load German subtitles that have the default-flag but not together with forced-flag.
  This is useful when you have files where the default and forced flags are set together.

Example: (advanced ruleset for files with multiple audio and subtitle-tracks)
  "jpn:ger|d!f  jpn:ger|!f  jpn:ger  ger:ger|f  ger:eng|f  ger:*|f"
Explanation:
  On Japanese audio, try to load German full subs (default but not forced), then unforced, and at last any german subs if there are no unforced subs.
  On German audio load only forced subs in the following order: German, English, any.

Example: (text match)
  "*:eng@Forced"
Explanation:
  On any audio, select english subtitle streams with "Forced" in the stream title.

BluRay Support
=============================
To play a BluRay, simply open the index.bdmv file in the BDMV folder on the BluRay disc.
LAV Splitter will then automatically detect the longest track on the disc (usually the main movie),
and start playing.
Alternatively, you can also open a playlist file (*.mpls, located in BDMV/PLAYLIST), and LAV Splitter
will then play that specific title.

In future versions, you'll be able to choose the title from within the player, as well.

Compiling
=============================
Compiling is pretty straightforward using VS2019 (included project files).
Older versions of Visual Studio are not officially supported, but may still work.

It does, however, require that you build your own ffmpeg and libbluray.
You need to place the full ffmpeg package in a directory called "ffmpeg" in the
main source directory (the directory this file was in). There are scripts to
build a proper ffmpeg included.

I recommend using my fork of ffmpeg, as it includes additional patches for
media compatibility:
https://gitea.1f0.de/LAV/FFmpeg

libbluray is compiled with the MSVC project files, however, a specially modified
version of libbluray is required. Similar to ffmpeg, just place the full tree
inside the "libbluray" directory in the main directory.

You can get the modified version here:
https://gitea.1f0.de/LAV/libbluray

Feedback
=============================
GitHub Project: https://github.com/Nevcairiel/LAVFilters
Doom9: https://forum.doom9.org/showthread.php?t=156191

lavfilters's People

Contributors

astrataro avatar chocobo1 avatar clsid2 avatar hektopuss avatar jeeb avatar johnpeeb avatar karbonitekream avatar kasper93 avatar kg7x avatar klaus1189 avatar kongfl888 avatar lummo avatar nak5124 avatar nevcairiel avatar nkh0472 avatar romank1 avatar stanzilla avatar totalcaesar659 avatar underground78 avatar xhmikosr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lavfilters's Issues

unable to open AVISynth script

Hi

Latest version used, I'm trying to open .avs file in Windows Media Player and GraphStudio (using LAV Splitter Source). If AVISynth installed I can open .avs file without any issues.

So, maybe it's bug, maybe I'm doing something wrong, but as I see in changelists AVISynth file is supported.

Script is very simple

DirectShowSource("c:\samples\video.mp4", fps=25).ConvertToRGB32()

nvidia 364 slow hevc main10

With the latest drivers from nvidia on my 960gtx i get very low framerate for hevc main10 300mbps (crowd video). With 361 everything works fine. (Win10 x64)

Can`t compile ffmpeg under cygwin with build_ffmpeg.sh

I`m trying to compile ffmpeg with build_ffmpeg.sh under cygwin in windows 7 amd64, but getting:

Building ffmpeg in GCC x86_64 Release config...
ERROR: libspeex not found

libspeex.a is in ../thirdparty/lib64(lib32), cant realize, what im doing wrong.

M4A audio file doesn't play

don't delete/reset existing settings on uninstall/reinstall

Usually, I uninstall the old version, before installing the new one. The installer should not remove the settings or should ask if it should remove the existing settings when uninstalling LAV Filters, or it should ask the user if it should reset the settings when installing. I don't know what case it is, out of these two.

CUVID breaks if SLI is enabled

Selecting CUVID in LAV Video Decoder within MPC-HC prevents videos from playing when SLI is enabled. The behavior is prevented if SLI is disabled or DXVA is selected instead.

A similar ticket was opened here: ysh1101/lavfilters#545

MediaControl hangs when Lav Splitter source is setted in Timeline

I'm using Lav Splitter Source on my project, but there is a problem.
I create a IAMTimelineObj to load a mp3 audio clip, next I set the Lav Splitter Source Filter on the timeline using the SetSubObjectGUID method.

Everything works fine, and if I load the audio clip and play a part of it (using IMediaSeeking.SetPositions on the renderer) the audio starts and stops correctly, but when the audio ends, the mediacontrol is blocked. I can't receive the complete event, and if I try to stop the Graph, the mediacontrol hangs on stop function.

Am I doing a something wrong? Or is there a bug on the splitter source?

Feature Request: support for two subtitle pins

Hello.
My media player allows user to see two separate subtitles simultaneously (useful when learning language, for example) - http://puu.sh/orbtZ/1e0e4eb740.jpg, but currently I use modified MPC-BE codecs as internal codecs (so user don't have to install anything) to make it work.
But, due to inconsistent updates of MPC-BE codecs, I want to switch to LAV Filters.
So, I would like to ask you: can you please add support for two subtitles pins? So I don't have to keep two copies of LAV Filters - mine and your master, and merge it, because otherwise users became dependent on how frequently I will update LAV Video and they will be not be able to use your official version.

Regards, Dmitry

Doubled frame rate info isn't being passed to the video renderer

MPC-HC settings:
Video Renderer: madVR
Audio Renderer: ReClock
LAV Video:
[x] Enable YADIF Deinterlacing (.) 50p/60p (Video)
ReClock settings:
[x] PAL SpeedDown (force to 24fps)
madVR settings:
list all display modes madVR may switch to: 1080p24, 1080p25, 1080p30, 1080p50, 1080p60
[x] treat 25p movies as 24p (requires Reclock or VideoClock)

madVR switches the monitor to 24 Hz when playing PAL video (http://mir.cr/0TO7HKQ7) and to 30 Hz when playing NTSC video (http://mir.cr/0JGNT9O8). It causes dropped frames.
If we perform YADIF deinterlacing with ffdshow madVR behaves correctly (doesn't switch when playing PAL video 'cause there's no 48 Hz mode and switches to 60 Hz when playing NTSC video).

CUVID support in Windows 10

Hi, I am using LAV Video Decoder version 0.67.0.69-git with a Nvidia 840M GPU on Windows 10. The CUVID acceleration would show as "avcodec" when CUVID is selected and a video is playing. On my other machines running on the same LAV versions, Windows 10, and same Nvidia driver versions (Newest Stable drivers frim NVIDIA), the CUVID acceleration would work fine, and those 2 machines are using a GTX 770 and GT 430.

Any Suggestions?

Filters attempting to connect to Internet

Hi there,

I would like to get some filters setup to allow my OS to play MKV files, but in testing LAVFilters I found something worrying. Every time I launch an application using the filters it attempts to connect to the Internet. I am confident this is related to the filters, since the application never requested Internet access in the past. The filters attempted to connect to the IP addresses 23.64.171.27, 23.4.59.27,
and 23.65.11.27 in the three times I tested it. The addresses seem to resolve into symcd.com domains. There were many warnings of viruses and trojans on Google searches of the IP addresses that seemed to be related to this domain.

I cannot see anything in the settings regarding checking for version updates or anything that would explain why the filters are attempting to go to the Internet. I can't be bothered to setup a sniffer right now, but perhaps someone here can explain to me why the software is attempting to communicate on the Internet instead of simply decoding the videos?

Thanks,
Eglin

unable to use CUVID (MPS-HC crashes)

I just discovered that playing HEVC using CUVID decoder crashes MPC-HC.
I don't know if it's caused by CUVID, MPC or LAV (Video decoder), but I suppose I can start here.

In the past I did set it up to play 1080 and 4k using the GPU via CUVID, and it di play the test vids.
Now I used a HEVC encoded file and MPC-HC just crashes; I discovered I can play the file with CPU decoding, but not with the GPU (CUVID).

My GTX660 is supposed to be able to play 1920x1080 HEVC video so I'm puzzled.
Here's a dump: https://drdump.com/UploadedReport.aspx?DumpID=5713660&SecondVisit=1

It seems to point to some CUVID thing, and being LAV Video decoder the only thing that uses it I suppose it's a bug? I hope it's something that's possible to fix...

(Windows 7 64bit, NV Drivers 359.00, MPC-HC 1.7.10.28 (0115ec4), LAV 0.67.0.3-git, madvr 0.89.17)
If you need other data just ask.

DXVAcb + HEVC10 + YV12 = Incorrect decoding result

I noticed that when setting decoding mode to DXVA copy back, selecting output format to YV12, and decoding HEVC 10bit video files, I got grayscaled magenta picture.

NV12 is working fine. AVC is fine.

Reproduced on Win10 x64, GTX 950, MPC-HC / DirectShowSource2.

Some TS files with a Dolby E audio track do not work

This problem started in version 0.66. Audio in some TS files with a Dolby E track (broadcast lossless audio format) is not detected. Only MPEG audio and other common formats show up under the audio track selection tab.
I am using Media Player Classic 1.7.9. If I go back to LAV version 0.65, the audio track is detected and I can bitstream it to an external decoder perfectly.

This is a TS file with this problem: https://drive.google.com/folderview?id=0B09XfeCqRrZbYjlWTUQzUzZjd3c&usp=sharing
And this are 2 TS files with working Dolby E audio: https://drive.google.com/folderview?id=0B09XfeCqRrZbY0JyNnVhQkFTczg&usp=sharing

Install via batch files does not take effect

I had run into an issue where mp4's were just loading black, rather than playing the video.

Installing LAVFilters through the exe linked here: http://forum.doom9.org/showthread.php?t=156191 and then adjusting codec settings via Win7DSFilterTweaker 5.9

Running the batch install files in an admin shell (Windows 10) the same issue with an mp4 just showing as black was present, even after setting the preferred codes in Win7DSFilterTweaker 5.9.

Loud high-pitch whistling when start playing some MP3 files

Just installed a K-Lite Codec Pack 12.01 and I have an issue playing an MP3-file through in-game player of some game.

So, I have two types of MP3 files:

  Audio
  Format                      : MPEG Audio
  Format version              : Version 2
  Format profile              : Layer 3
  Audio
  Format                      : MPEG Audio
  Format version              : Version 1
  Format profile              : Layer 3

When I play both of them through MPC, the LAV Audio Decoder and ffdshow Audio Decoder are used and LAV is saying that input codec is mp3float. When I play both of them through the in-game music player, only the LAV Audio Decoder is used and is saying that input codec is mp1float.

When I play both of them through MPC, no issues happen. When I play the first one through the in-game music player, also no issues happen. But when I play the second one through the in-game music player, I hear loud high-pitch whistling for about half a second.
If I go to LAV Audio Decoder's Properties -> Formats and disable it for mp2 and mp3 file types — no issues happen anymore.

Also, I've found that some people had been experiencing similar issue with another game back in October, 2012.

Can't seek/jump in dash mp4 files anymore

If I play a dash mp4 file downloaded from youtube I can't jump to a specific time with MPC-HC or MPC-BE anymore. If I use the built in Filters of MPC-BE it works.

Video stuck at 0:00:00 without any error prompt

I don't know what you need, so all info that I can get from MPC HC.

Media info: http://pastebin.com/MkWyXSS8
Splitter video pin info: http://pastebin.com/aUARMtE1
Splitter audio pin info: http://pastebin.com/iVp6AfkB
Video in pin info: http://pastebin.com/4fHqrePE
Video out pin info: http://pastebin.com/TztKkua2
Audio "XForm" in pin info: http://pastebin.com/h3Jujnhw
Audio "XForm" out pin info: http://pastebin.com/wN2VxhQQ
Internal Audio Render Input0: http://pastebin.com/Zz3R2jE5
EVR Input0: http://pastebin.com/EAcW90P8
EVR Input1/2: Filter: In both only "Enhanced Video Renderer - CLSID : {FA10746C-9B63-4B6C-BC49-FC300EA5F256}"

What is going? File open in the MPC HC, but stuck on 0:00:00, it says it are playing, but nothing are playing and absolutely none progress on GUI.

All other video in various formats plays fine, but not it.

Edit: Oh fine, it occurs on 0.67.0.3-git and 0.67 stable as well.

memory leak using QuickSync HW Acceleration

when using ILAVVideoSettings.SetHWAccel(LAVHWAccel.HWAccel_QuickSync), decoder leaves unreleased HDC handles. Im not sure, if the problem is in QuickSync (latest version) or in its initialization/deinitialization on LAV side.
RuntimeConfig settings have no effect on the leak.

problem orrurs, when you use LAV+QuckSync multiple times (like playing short spots/movies in a loop)

Call stack where the unreleased handles are created:
GDI32!CreateDCA( LPCSTR, LPCSTR, LPCSTR, const DEVMODEA * )
d3d9!Direct3DCreate9Ex() + 0x663 bytes
d3d9!Direct3DCreate9Ex() + 0x3e39 bytes
d3d9!Direct3DCreate9Ex() + 0x13b bytes
d3d9!Direct3DCreate9() + 0x25 bytes
[Unidentified frame(s)]
LAVVideo!CDecQuickSync::InitDecoder( enum AVCodecID,class CMediaType const * ) quicksync.cpp Line 361 + 0x5 bytes
LAVVideo!CDecodeThread::CreateDecoderInternal( class CMediaType const _,enum AVCodecID ) decodethread.cpp Line 464 + 0xd bytes
LAVVideo!CDecodeThread::ThreadProc( void ) decodethread.cpp Line 280
LAVVideo!CAMThread::InitialThreadProc( void * ) wxutil.cpp Line 124 + 0x8 bytes
LAVVideo!thread_start<unsigned int ( _stdcall ) thread.cpp Line 115 + 0x2 bytes
KERNEL32!@BaseThreadInitThunk@12() + 0x24 bytes
ntdll!___RtlUserThreadStart@8() + 0x2f bytes
ntdll!__RtlUserThreadStart@8() + 0x1b bytes
[Skipped frame(s)]

LAV Splitter crash when opening file with multiple HDMV PGS (SUP) subtitles

I'm currently using Potplayer (64-bit) with LAV filters 0.66.0. However, I experienced constant program crash when I try to open a MKV file with two HDMV/PGS (SUP) tracks. I'm almost certain that the problem is about LAV Splitter and the PGS track, because (1) the problem is solved as soon as I removed the PGS tracks from the video file using MKVMerge 8.4.0 64-bit version, and (2) the problem is also solved without removing the PGS tracks when I switch to another splitter (ffmpeg splitter is the one I tried). I hope this problem can be fixed in future updates because I don't want to switch to another splitter every time I watch this video.

P.S. I just did a further research and removed only one of the two PGS tracks. The crash didn't occur. So it seems that LAV Splitter has trouble handling MULTIPLE PGS tracks.

P.P.S FURTHER research. I examined further by removing the DEFAULT track but leaving the secondary track. Initially the program crashed. Then I examined the flags in MKVToolNix, I found the difference is that the "default track" flag for the previous secondary track (now only and primary track) is marked as "determine automatically". I changed it to "yes" and remux the file, and guess what, it now works. The program doesn't crash now. So further conclude all previous experiments, it seems that LAV Splitter has trouble handling PGS tracks with a "determine automatically" "default track" flag.
not-working flag
working flag

QuickSync Memory leak

Hello,
firt of all...good work nevcairiel! LAV filters are my favourite.
I play regularly short 4k or HD clips on my tv in my living room for deco reasons, using a small Haswell miniITX computer and a r7 radeon and VVVV software. I noticed that after a long time the VVVV patch suddenly closed always, and tracked the problem due to a shortage of memory. I then reproduced the problem playing them in MPC, and had the same results. The problem is when VVVV or MPC loads a new/different video, it's ram footprint get bigger and bigger (maybe 500kb or 1 MB each new video). This ony occurs if QuickSync HW acceleration is enabled. I also want to point out that the intel iGPU does not render as the TV is plugged to the radeon. And that I use Haali Splitter and Mkv/H264 videos, some with audio and no subtitles at all.
Attached is Graph I use and some other info I got from my computer. I tried LAV filter 0.65 and 0.66.
If you need any other info please tell me.

https://www.dropbox.com/s/rhynuwbsu8hqnni/memory_leak_mpc_con%20haali_splitter.zip?dl=0

Thanks for making these awesome filters.

LAVvideo.ax won't register on Windows XP SP2.

Then put that info on your website and put it in the installer and put a check in the installer instead of letting it trip all over itself and fuckup at the end of install!

Did nobody ever teach you responsible programming?

Wake up!

You would lose your job in the first week working on a real commercial software.

MKV: A track which have a segmented chapter containing a different audio codec than the main track's audio wouldn't play properly

The main track:
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High [email protected]
Format settings, CABAC : Yes
Format settings, ReFrames : 9 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 20mn 40s
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 fps
... (and so on)

Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : A_AAC
Duration : 20mn 40s
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Compression mode : Lossy
Delay relative to video : 9ms
Language : Japanese
Default : Yes
Forced : No

The segmented chapter:
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : Yes
Format settings, ReFrames : 8 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 1mn 31s
Bit rate : 7 025 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 fps
... (and so on)

Audio
ID : 2
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Format settings, Endianness : Big
Codec ID : A_AC3
Duration : 1mn 31s
Bit rate mode : Constant
Bit rate : 320 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 3.48 MiB (4%)
Language : Japanese
Default : Yes
Forced : No

When the episode was played, I could view the video track of the segmented chapter, but the audio wouldn't play. When I tried to play the segmented chapter itself, it would play perfectly, both video and audio track.

Also, I tried to use Haali Media Splitter instead of LAV Splitter (but still using LAV Filters), and the segmented chapters wouldn't appear at all on the player. But for another track which had the same audio codec for its segmented chapters, they'd load just fine.
I also tried using a portable VLC, but surprisingly the segmented chapters played just fine, both video and audio, despite the audio having different codec.

Example files here:
The main track: An episode of an anime
The segmented chapters: First segment: opening of the episode, Second segment: ending of the episode
Note: You'll probably have to skip the sh.st link first. The server appeared to be logging your referrer. So, unless you were referred from an sh.st link, you wouldn't be able to download, AFAIK.

Video Seek Freeze

Hi there, I've been doing a lot of tests, And I found out that when I'm using LAV Video, I got freezes on some x264 videos on some parts of the video on seeking. If I change the video to MPC-HC Internal, even keeping LAV Audio and LAV Splitter. No more freezes. I've test the video on VLC and it play fine too. (I've CCCP installed)
I've tested changing seek options on MPC-HC, but nothing, I changed to Kawai codec, and the problem existed too. So I'm preety sure the culprit is Lav Video.
I've tested with all LAV Filters since: 0.60.1 till the last one 0.67, and in all versions the problem exist :/

With 0.58.2 -The freeze doesn't exist but it appears this bug: http://i.imgur.com/sJU9gnd.jpg
With 0.59.1.26 - The bug above is gone, but it begins the freezing, but it has a lot of freeze way more then on 0.60.1 above, since on 0.6x versions I just see 1 or 2 "keyframes" that freezes.

I though it could be about x264 settings. but I have 2 videos with the same settings, and the problem just exist in one of the videos -.-

And I encoded an mp4, and the original one doesnt have the freezing. -.- But I I've many encodes of mines with the same settings and the problem doesn't exist. :s

If you need more information about this, please ask.

Program selection in MPEG-TS and others

LAV Splitter should allow to select the active program in MPEG-TS and other formats that expose them.
Programs are also used in HLS streams for different variants.

OPUS low bitrate speech distortions

I have some weird sound distortions bug with OPUS encoded on very low bitrate
Decoding opus with opusdec gives normal sound. No distortions. So it definitely something with LAV Audio Decoder
on 2 chanels it's start from < 48kbps
on 6 chanels it's start from < 224kbps
here is samples
http://www.mediafire.com/download/tiab1o4w6wtb6j3
encoding on high bitrates is not an option since opus is designed for low bitrates (better then to use aac for compatibility)
also 0.62 version doesn't have this bug, so I fall back LAVAudio.ax to it and it's sounds OK

PS: yea.. now there is "issues" section finally :)

Dolby Pro Logic II - Mix Stereo To Center

Dolby Pro Logic II is not working as it should.
is there anything planed to support Dolby Pro Logic II like in ffdshow.
it is horrible when dialogue is not at Center (for Stereo Soruces only).
regards, onur

Problem with decoding old quicktime file.

Hello!
It seems like LAV video decoder has troubles with decoding some old quicktime files.
Decoded frames look like this:
screenshot 1
Instead of this:
screenshot 2
Fisrt picture is taken when video is decoded with LAV 0.67, second picture is taken when video is decoded with internal MPC-BE decoder.
Sample cutted with ffmpeg in stream copy: https://www.dropbox.com/s/8v37jy5z0mjfe81/movie%3D%3D.zip?dl=0
Mediainfo for original file:

Format                                   : QuickTime
Format/Info                              : Original Apple specifications
File size                                : 51.1 MiB
Duration                                 : 4mn 36s
Overall bit rate                         : 1 549 Kbps
Encoded date                             : UTC 1999-05-17 15:08:00
Tagged date                              : UTC 1999-05-17 15:10:10
Writing library                          : Apple QuickTime

Video
ID                                       : 1
Format                                   : Cinepack
Codec ID                                 : cvid
Duration                                 : 4mn 36s
Duration_LastFrame                       : -23ms
Bit rate                                 : 1 360 Kbps
Width                                    : 320 pixels
Height                                   : 240 pixels
Display aspect ratio                     : 4:3
Frame rate mode                          : Constant
Frame rate                               : 15.000 fps
Bits/(Pixel*Frame)                       : 1.180
Stream size                              : 44.9 MiB (88%)
Language                                 : English
Encoded date                             : UTC 1999-05-17 13:55:22
Tagged date                              : UTC 1999-05-17 15:10:10

Audio
ID                                       : 2
Format                                   : ADPCM
Format settings, Firm                    : IMA
Codec ID                                 : ima4
Duration                                 : 4mn 36s
Bit rate mode                            : Constant
Bit rate                                 : 352.8 Kbps
Channel(s)                               : 1 channel
Sampling rate                            : 44.1 KHz
Bit depth                                : 16 bits
Stream size                              : 11.6 MiB (23%)
Language                                 : English
Encoded date                             : UTC 1999-05-17 13:55:22
Tagged date                              : UTC 1999-05-17 15:10:10

DXVA 2 poor support to H264

H264 MKV not decoded by DXVA hardware, but by processor unity.

1° option: DXVA2 COPY BACK. (not working)
2° option: none

Native DXVA2 always never work before. Other codecs work fine. Other LAV ancient versions work fine.

LAV Filters Selecting Best Audio

Hello, I had to rebuild a computer and am pretty sure that I had it working this way before. I make MP4 Files with three audio tracks. AC3, AC3-Passthrough, and DTSHD-Passthrough. I do this to make the files compatible with 360 Extenders, Android, and also to get the best audio when played in my basement home theater which is the computer I have the issue with. If I select to bitstream all of the formats the files do not play. If I uncheck all the bitstreaming options they will play. Previously, I believe LAV would select the best audio and bitstream if applicable and not bitstream if not applicable. I don't remember EVER having a file that wouldn't play on the computer. Am I doing something wrong? Has something changed? I want LAV to select the best audio (HD if available and bitstream to my receiver). Thanks in advance. Forgot to mention....for kicks, I ripped a bluray with ONLY a HD track and it played brilliantly with all the boxes checked.

QuickSync on Intel HD Graphics 520 does not activate

Hi,

I have Surface Pro 4 with Intel HD Graphics 520 and while trying to play a movie:

Video: HEVC 3840x2160 29.97fps [V: hevc main, yuv420p, 3840x2160]
Audio: AAC 48000Hz stereo 194kbps [A: aac lc, 48000 Hz, stereo, 194 kb/s]

with:

MPC-HC (Nightly, 64-bit)

Build information:
Version: 1.7.10.130 (6d03440)
Compiler: MSVC 2015 Update 1
Build date: Apr 2 2016
LAV Filters:
LAV Splitter: 0.68.0.0
LAV Video: 0.68.0.16
LAV Audio: 0.68.0.16
FFmpeg compiler: MinGW-w64 GCC 5.3.0
Operating system:
Name: Windows NT 10.0 (build 10586)
Version: 10.0 (64-bit)
Hardware:
CPU: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz
GPU: Intel(R) HD Graphics 520 (driver version: 20.19.15.4380)

with QuickSync hardware acceleration then processor usage is at 100%:

image

but when switched to DXVA2 then usage is on around 7%:

image

I have tried 3 diffrent drivers versions and 0.67 and 0.68 LAV Video Decoder versions and have same issue.

Maybe it is a issue with QuickSync in LAV Video Decoder?

Best regards,

Marek Suski

Issue playing mp4 containing E-AC-3 audio

I have a file with E-AC-3 audio that when played, has no sound. I can play the E-AC-3 track fine in VLC media player. Also, If I switch LAV Splitter to use the alternate stereo AAC audio track, the audio plays.

The following is the file media info:

General
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42
File size : 735 MiB
Duration : 5mn 34s
Overall bit rate : 18.4 Mbps

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L4
Format settings, CABAC : No
Format settings, ReFrames : 2 frames
Format settings, GOP : M=3, N=28
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 5mn 34s
Source duration : 5mn 34s
Bit rate : 17.8 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 30.000 fps
Minimum frame rate : 29.791 fps
Maximum frame rate : 30.151 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.286
Stream size : 709 MiB (96%)
Source stream size : 709 MiB (96%)
Color range : Limited
Color primaries : BT.601 NTSC

Audio #1
ID : 2
Format : E-AC-3
Format/Info : Audio Coding 3
Format settings, Endianness : Little
Codec ID : ec-3
Duration : 5mn 34s
Bit rate mode : Constant
Bit rate : 384 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 15.3 MiB (2%)

Audio #2
ID : 3
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 5mn 34s
Source duration : 5mn 34s
Bit rate mode : Constant
Bit rate : 256 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 10.1 MiB (1%)
Source stream size : 10.1 MiB (1%)

The following is the input info for the LAV Audio Decoder pulled from MPC:

Filter : LAV Audio Decoder - CLSID : {E8E73B6B-4CB3-44A4-BE99-4F7BCB96E491}

  • Connected to:

CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Filter: LAV Splitter Source
Pin: Audio

  • Connection media type:

Audio: Dolby AC3 11025Hz stereo 12kbps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_DOLBY_AC3 {E06D802C-DB46-11CF-B4D1-00805F6CBBEA}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 256000
cbFormat: 18

WAVEFORMATEX:
wFormatTag: 0x2000
nChannels: 2
nSamplesPerSec: 11025
nAvgBytesPerSec: 1500
nBlockAlign: 8
wBitsPerSample: 16
cbSize: 0 (extra bytes)

pbFormat:
0000: 00 20 02 00 11 2b 00 00 dc 05 00 00 08 00 10 00 . ...+..Ü.......
0010: 00 00 ..

This looks off to me as the media type does not indicate E-AC-3 but instead show only AC3. Also, the number of channels, sampling rate, and bit rate are way off.

Reselect Subtitle stream when audio stream changes

Hi!
I use the "advanced" options in LAV splitter for selecting subtitles in MPC-HC and it works fine. However, it'd be great if the advanced subtitle rules would be re-evaluated when I switch audio streams.

E.g. an MKV (containing English and German Audio, English and German normal subtitles plus English and German forced subs) starts with English audio and LAV correctly selects the English forced subs according to my rule:

eng:eng|f ger:ger|f :|d

But when I then switch to German audio in MPC-HC, I'd expect the subtitle selection to switch to German forced subtitles automatically. This does not happen. It still uses the English ones that were activated when the player started.

So obviously, the only thing missing here is the option to re-check the LAV splitter subtitle options when the audio track is changed. Would be nice if this could be implemented!

Thanks!

h264 memory leak

I am using LAV video decoder to decode mpeg-2/h264 streams received from network (multicast).
It seems that there is a memory leak problem while decoding h264 streams.

Memory leaks are especially strong when loss of input packets present. For test purposes, I stream video from VLC to my application that uses directshow graph. When I insert some "spoiling" of input stream (for example changing the playing position in VLC) memory consumption significantly increases. I was not sure that memory leak is in the decoder, but I did some testing with deleting filters from the graph manually and found that when I free up the decoder, almost all allocated memory is freed.

I aslo did some testing with VS2015 memory profiler (using LAV .pdb files). The picture below shows signiicant memory increase after several changings of playing position in VLC. (snapshot 2). Snapshot 1 - heap before "spoiling" input stream with VLC. Snapshot 3 - another, smaller portion of "spoiling".
vs2015_mem1

Unfortunately, I can't see where exactly this leak appears, maybe because I don't have enough .pdb for all components of LAV filter. Blocks with leaked memory have "undetermined" type, and the module with leak is undefined too (VS 2015 shows the module with memory leak as "External"). Pictures below show it:
vs2015_mem
vs2015_mem2

I don't use any HW acceleration for video decoding.

When I do same things with mpeg-2 compressed video, I don't observe such problems.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.