我使用 ffmpeg 在批处理文件中转换视频,但有时视频中混入了纯音频文件,因此需要将其转换为纯音频文件。这会带来一些麻烦,因为音频会被转码,文件大小最终会变得更大。
有什么方法可以轻松检测到这种情况并防止转码(我需要重命名文件才能适应我的转码方式)。
我想理想情况下应该有一个我可以调用的实用程序,如果文件仅有音频,则返回 0 或 1 退出代码。
答案1
以下代码将编解码器类型转储到文本文件中。如果文件同时包含音频和视频,则可以进行转换。这可能不是最佳解决方案,但到目前为止效果很好。
ffprobe.exe -v quiet -show_entries stream=codec_type -of csv=p=0 "%%a" > tmpff.tmp
findstr ^audio tmpff.tmp >nul 2>&1
if !ERRORLEVEL! EQU 0 (
findstr ^video tmpff.tmp >nul 2>&1
if !ERRORLEVEL! EQU 0 (
echo Transcoding %%a
)
)