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.
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.
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://git.1f0.de/gitweb?p=ffmpeg.git;a=summary
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://git.1f0.de/gitweb?p=libbluray.git;a=summary
Feedback
=============================
GitHub Project: https://github.com/Nevcairiel/LAVFilters
Doom9: https://forum.doom9.org/showthread.php?t=156191
没有合适的资源?快使用搜索试试~ 我知道了~
下载安装Lav Filters
共38个文件
h:16个
dll:8个
bat:6个
需积分: 0 78 下载量 67 浏览量
2023-04-12
16:57:58
上传
评论 1
收藏 9.04MB RAR 举报
温馨提示
Lav fiters是常用的qt音频视频解码器,其优点在于方便简洁兼容度高,在mp3文件播放中表现还是很好的。
资源推荐
资源详情
资源评论
收起资源包目录
LAV Filters.rar (38个子文件)
LAVFilters
include
IBufferInfo.h 1KB
LAVVideoSettings.h 15KB
IBitRateInfo.h 955B
README.txt 2KB
LAVAudioSettings.h 9KB
IMediaSample3D.h 410B
IKeyFrameInfo.h 2KB
IStreamSourceControl.h 2KB
ITrackInfo.h 4KB
ID3DVideoMemoryConfiguration.h 3KB
ISpecifyPropertyPages2.h 1KB
IDSMResourceBag.h 1KB
IGraphRebuildDelegate.h 2KB
IPinSegmentEx.h 625B
LAVSplitterSettings.h 9KB
IMediaSideData.h 10KB
ILAVDynamicAllocator.h 1KB
LAVVideo.ax 1.2MB
uninstall_video.bat 42B
avformat-lav-59.dll 4.95MB
uninstall_audio.bat 42B
libbluray.dll 406KB
install_video.bat 39B
IntelQuickSyncDecoder.dll 510KB
README.txt 7KB
swresample-lav-4.dll 134KB
install_splitter.bat 42B
LAVAudio.ax 325KB
swscale-lav-6.dll 607KB
LAVSplitter.ax 669KB
CHANGELOG.txt 60KB
avcodec-lav-59.dll 13.4MB
avutil-lav-57.dll 954KB
uninstall_splitter.bat 45B
avfilter-lav-8.dll 210KB
COPYING 18KB
LAVFilters.Dependencies.manifest 493B
install_audio.bat 39B
共 38 条
- 1
资源评论
祐言QAQ
- 粉丝: 8477
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- c51_2_2.c
- ASCII American Standard Code for Information Interchange
- 一个chm格式的 SQL 函数手册-SQL语言手册文档
- 计算当前月份的天数和剩余天数
- 基于ARM的指令调度和延迟分支
- 基于Vue和TypeScript的极简聊天应用设计源码 - HasChat
- 基于Vue2全家桶和Zcool数据的图片收集网站设计源码 - cool-picture
- 基于C和C++的二维绘制工具设计源码 - DrawPro
- Object.defineProperty 的 IE 补丁object-defineproperty-ie-master.zip
- 整卷预览.mhtml
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功