在ffmpeg中,是否可以在从视频中提取(复制)音频流时自动确定音频扩展名?
ffmpeg -i movie.mkv -vn -c:a copy audioOnly.{?}
Run Code Online (Sandbox Code Playgroud)
movie.mkv 中的音频可以是任何格式(mpeg3、aac、flac、wav、vorbis 等)
容器和编码之间存在差异。m4v是一个容器,WAV、WMA、WMV、AAC等也是一个容器,它们都支持多种编码。但是,有一些一般模式。ffprobe 可以提供帮助。
这里非常全面地介绍了使用 ffmpeg 从视频文件中提取音频: https: //gist.github.com/protrolium/e0dbd4bb0f1a396fcb55
其中,有一个示例说明在某些情况下如何使用 ffprobe 和 sed 来完成您所寻求的操作:
for file in *mp4 *avi; do ffmpeg -i "$file" -vn -acodec copy "$file".`ffprobe "$file" 2>&1 |sed -rn 's/.Audio: (...), ./\1/p'`; done
Run Code Online (Sandbox Code Playgroud)
在链接页面中,上面的内容似乎已被 html 编码损坏。我已经尝试修复它。对于单个文件来说,它可能会被简化为:
ffmpeg -i "myfile.m4v" -vn -acodec copy "myfile".`ffprobe "myfile.m4v" 2>&1 |sed -rn 's/.Audio: (...), ./\1/p'`
Run Code Online (Sandbox Code Playgroud)
但是,如果您不使用 sed 和 bash shell,那么这将不起作用。(即不适用于 Windows)。如果视频文件中的编码通常不映射到文件扩展名,它也将不起作用。在 Windows 中,您可能会想出一个 powershell 或 vbscript 来完成同样的事情。
归档时间: |
|
查看次数: |
4153 次 |
最近记录: |