stream.ffmpegmux: show warning if unavailable #4781
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There is way too much confusion about FFmpeg and muxed streams.
The problem is that it's not transparent at all which streams are muxed and which are not. This is due to how streams get returned, as a mapping of name->stream dicts or tuples with "alt" deduplications already done by the
Stream
implementations themselves or theplugin.streams()
method, and only names get shown by the CLI.The HLS implementation with external audio streams is also not ideal, because it silently falls back to streams without external audio. That needs to be changed, ideally with the implementation of alternative video streams (#3579).
So in order to at least give the user some feedback, let's add warning messages when FFmpeg is not available on the system.
The warning messages get only shown once if multiple checks are done, thanks to the caching added recently.
I decided to add two warning messages and tried to make them as short and precise as possible. Referring to the CLI argument name is not 100% correct, but since the session option does have the same name, it's fine. The empty set is also always a subset, so that should be fine, too.
UStreamTV plugin which requires FFmpeg:
YouTube plugin with adaptive streams - #4777:
HLS streams with external audio: