Browse Source

Convert README to Markdown

pull/524/merge
Hendrik Leppkes 1 month ago
parent
commit
b9116b03c7
No known key found for this signature in database GPG Key ID: 846079A4B0A7C1B5
  1. 2
      LAVFilters.iss
  2. 101
      README.md

2
LAVFilters.iss

@ -99,7 +99,7 @@ Source: bin_x64\LAVFilters.Dependencies.manifest; DestDir: {app}\x64; Flags: 64b
Source: bin_x64\IntelQuickSyncDecoder.dll; DestDir: {app}\x64; Flags: 64bit ignoreversion restartreplace uninsrestartdelete; Components: lavvideo64
Source: COPYING; DestDir: {app}; Flags: ignoreversion restartreplace uninsrestartdelete
Source: README.txt; DestDir: {app}; Flags: ignoreversion restartreplace uninsrestartdelete
Source: README.md; DestDir: {app}; Flags: ignoreversion restartreplace uninsrestartdelete
Source: CHANGELOG.txt; DestDir: {app}; Flags: ignoreversion restartreplace uninsrestartdelete
Source: thirdparty\contrib\7za.exe; DestDir: {tmp}; Flags: dontcopy

101
README.txt → README.md

@ -1,4 +1,5 @@
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.
@ -6,13 +7,13 @@ from the ffmpeg project, which will allow you to play virtually any format in a
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)
@ -28,7 +29,7 @@ it the preferred decoder by default. Most players offer a way to choose the pref
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.
@ -36,7 +37,8 @@ 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,
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.
@ -47,72 +49,68 @@ than lossy codecs.
Subtitle selection offers the most flexibility.
There are 4 distinct modes of subtitle selection.
"No Subtitles"
#### No Subtitles
This mode is simple, by default subtitles will be off.
"Only Forced Subtitles"
#### 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"
#### 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"
#### 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"
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.
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 "!".
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.
A text match can be added to the end of the token with a `@` sign.
Example: (basic flag usage)
"*:*|f"
Explanation:
On any audio language, load any subtitles that are flagged forced.
- `*:*|f`
- 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.
- `eng:eng|f eng:ger|f eng:off *:eng *:ger`
- 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.
- `jpn:ger|d!f`
- 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.
- `jpn:ger|d!f jpn:ger|!f jpn:ger ger:ger|f ger:eng|f ger:*|f`
- 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.
- `*:eng@Forced`
- On any audio, select english subtitle streams with "Forced" in the stream title.
BluRay Support
=============================
Blu-ray 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.
@ -122,27 +120,26 @@ 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).
-----------------------------
Compiling is pretty straightforward using VS2022 (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.
It does, however, require that you build your own FFmpeg.
FFmpeg is included as part of the repository in a submodule, pointing to a custom
fork of FFmpeg with various patches for improved compatibility with LAV and DirectShow.
I recommend using my fork of ffmpeg, as it includes additional patches for
media compatibility:
A script is provided to compile FFmpeg using MSYS2 with MINGW/GCC or MSVC.
The custom fork of FFmpeg can be found here:
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.
libbluray is compiled with the MSVC project files, however, as with FFmpeg a custom
version is used, which is also linked as a Git submodule.
You can get the modified version here:
You can get find the custom version of libbluray here:
https://gitea.1f0.de/LAV/libbluray
Feedback
=============================
-----------------------------
GitHub Project: https://github.com/Nevcairiel/LAVFilters
Doom9: https://forum.doom9.org/showthread.php?t=156191
Loading…
Cancel
Save