为了自动化操作视频文件的脚本,我想要获得受支持的音频编解码器列表 - 最好是它们的编码器名称 - 基于视频编解码器和容器格式(也可能称为多路复用器或解复用器),如所支持的那样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可能有解决方案,但我还不知道如何过滤它们。