Ana*_*hto 3 audio linux ffmpeg
我正在尝试批量转换一组视频文件,其中一些具有 aac 音频,有些具有 wav、原始 PCM 或其他类似格式。
我正在寻找一种方法:
-c:a copy
)-c:a aac -b:a 160k
),则将音频流重新编码为 aac我目前的方法是手动识别哪些文件没有 aac 音频流并单独转换它们,但是将所有文件一起转换会很好。
有没有办法将音频的条件语句插入到 FFMpeg 命令中,如下所示?
for f in *.mkv; do
ffmpeg -i "$f" -c:v libx264 -c:a [some magic here] "${f%.*}_new.mkv"
done
Run Code Online (Sandbox Code Playgroud)
ffmpeg
如果输入不是特定格式,则没有条件语句用于编码或流复制。但是,您可以使用ffprobe
来确定音频格式,然后用于ffmpeg
编码或流式复制音频。
这是一个演示如何执行此操作的简单脚本。复制并保存它,用 给它执行权限chmod +x yourscriptname
,然后用./yourscriptname input.foo
:
#!/bin/bash
audioformat=$(ffprobe -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$1")
if [ "$audioformat" = "aac" ]; then
ffmpeg -i "$1" -c:v libx264 -c:a copy "${1%.*}_new.mkv"
else
ffmpeg -i "$1" -c:v libx264 -c:a aac "${1%.*}_new.mkv"
fi
Run Code Online (Sandbox Code Playgroud)
您可以轻松修改它以满足您的需求。
归档时间: |
|
查看次数: |
2676 次 |
最近记录: |