![ffmpeg 显示容器格式和视频编解码器支持的音频编解码器](https://linux22.com/image/1510573/ffmpeg%20%E6%98%BE%E7%A4%BA%E5%AE%B9%E5%99%A8%E6%A0%BC%E5%BC%8F%E5%92%8C%E8%A7%86%E9%A2%91%E7%BC%96%E8%A7%A3%E7%A0%81%E5%99%A8%E6%94%AF%E6%8C%81%E7%9A%84%E9%9F%B3%E9%A2%91%E7%BC%96%E8%A7%A3%E7%A0%81%E5%99%A8.png)
为了自动化操作视频文件的脚本,我想要获得受支持的音频编解码器列表 - 最好是它们的编码器名称 - 基于视频编解码器和容器格式(也可能称为多路复用器或解复用器),如所支持的那样ffmpeg
。
使用以下方法找出视频编解码器:
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name \
-of default=noprint_wrappers=1:nokey=1 video.mp4
返回h264
。使用以下方法找出容器格式:
ffprobe -v error -select_streams v:0 -show_format_entry format_name \
-of default=noprint_wrappers=1:nokey=1 video.mp4
返回mov,mp4,m4a,3gp,3g2,mj2
。
我们假设输入的视频文件没有音频流,所以我们不能简单地使用:
ffprobe -v error -select_streams a:0 -show_entries \
stream=codec_name -of default=noprint_wrappers=1:nokey=1 video.mp4
否则将返回aac
。
命令https://stackoverflow.com/a/20587693/188159可能有解决方案,但我还不知道如何过滤它们。