Check If FFmpeg Supports a Specific Protocol
Determining whether your local FFmpeg installation supports a specific network or file protocol is crucial for troubleshooting media streaming and file transfer issues. This article provides a quick and straightforward guide on how to list all supported protocols in FFmpeg using command-line tools and how to filter the results to find a specific protocol instantly on Windows, macOS, and Linux.
The Basic Command
FFmpeg includes a built-in command that lists all enabled input and output protocols for your specific build. To see the entire list, open your terminal or command prompt and run:
ffmpeg -protocolsThis command will output two columns: “Input protocols” (protocols
FFmpeg can read from, like http or rtmp) and
“Output protocols” (protocols FFmpeg can write or stream to).
Filtering for a Specific Protocol
Since the full list of protocols can be quite long, you can filter the output using command-line utilities.
On Linux and macOS (Bash/Zsh)
Use the grep command to search for a specific protocol
(for example, rtmpe):
ffmpeg -protocols | grep rtmpeIf the protocol is supported, the command will return the line containing it. If it returns nothing, that protocol is not supported by your current FFmpeg build.
On Windows (Command Prompt)
Use the findstr command to filter the list:
ffmpeg -protocols | findstr rtmpOn Windows (PowerShell)
Use the Select-String cmdlet:
ffmpeg -protocols | Select-String rtmpUnderstanding the Output
When you filter the output, pay attention to which section the
protocol appears under. For example, if you search for srt
(Secure Reliable Transport) and see it listed under both “Input
protocols” and “Output protocols”, it means your FFmpeg version can both
read an SRT stream and output/mux an SRT stream.
If a protocol is missing entirely, you will need to download a different FFmpeg build that has been compiled with that specific protocol enabled, or compile FFmpeg from source with the appropriate configuration flags.