赞
踩
FFmpeg 是一款功能强大的工具,可对音频和视频文件执行各种操作,如转码、过滤、编辑和流式传输。本文将向你展示如何使用 FFmpeg 批量转换或转换文件夹内的所有文件,并介绍一些优化转换过程和输出质量的技巧和窍门。
想象一下,你的文件夹中有数百个视频或音频文件。也许它们的格式较老,也许它们太大,无法实际使用。手动转换每个文件至少会耗费大量时间。这就是批量转换的神奇之处。
批量转换可以让你一次性转换所有这些文件,无需人工干预。无论你的目标是统一格式,还是需要压缩文件以便存储,批量转换都能改变游戏规则。
无论你的目标是什么,FFmpeg 都能通过一条命令行帮你实现。
安装 FFmpeg 后,你可以打开终端或命令提示符,并导航到文件所在的文件夹。要使用 FFmpeg 转换文件夹内的所有文件,需要使用 for 循环遍历每个文件,并将其作为 FFmpeg 命令的输入。for 循环的语法可能因操作系统和 shell 而异。
在 Windows 系统中,可以执行以下命令:
for %f in (*.*) do ffmpeg -i "%f" [options] "%~nf_converted.%~xf"
该命令将循环播放当前文件夹(用 .表示)中的所有文件,并使用 FFmpeg 进行转换。选项 -i 指定输入文件名,本例中为 %f。选项]部分用于指定各种转换参数,如输出格式、编解码器、比特率、分辨率、帧速率等。输出文件名由 %~nf_new.%~xf 组成,即带有 _new 后缀的原始文件名 (%~nf) 和原始文件扩展名 (%~xf)。
在 Linux 或 Mac 中使用以下命令也能实现同样的功能:
- mkdir converted
- for f in *.mp4; do ffmpeg -i "$f" "converted/${f%.mp4}.avi"; done
解释如下:
以下是一些常见示例,您可以直接在项目中使用。在运行之前,请确保已根据您的操作系统进行了适当修改。
for %f in (*.mp4) do ffmpeg -i "%f" -c:v libx264 -c:a aac "%~nf_new.mkv"
这将使用 H.264/AVC 视频编解码器和 AAC 音频编解码器把文件夹中的所有 MKV 文件转换为 MP4 格式。由于我们没有指定任何转码参数,FFmpeg 将默认使用 CRF 速率控制模式,CRF 值 = 18。您可以根据自己的需要,将此命令扩展为使用 CBR、VBR 或封顶 VBR。
for %f in (*.wav) do ffmpeg -i "%f" -b:a 128k -ar 44100 "%~nf_new.mp3"
上述命令行将把所有WAV 文件转换为 MP3,比特率为 128 kbps,采样率为 44.1 kHz。
for %f in (*.jpg) do ffmpeg -i "%f" -q:v 80 -vf format=gray "%~nf_new.png"
这将拾取所有扩展名为 .jpg 的图像,并将其转换为具有 80% 质量和灰度模式的 PNG 格式。
还可以使用通配符 (*) 或正则表达式 (^) 来匹配多个文件扩展名或模式。为了让大家明白这一点,这里有一些直接的示例,您可以根据您的特定用例使用或修改它们。
将文件夹中的所有视频文件(MP4、AVI、MOV)转换为 MKV 格式
for %f in (*.mp4 *.avi *.mov) do ffmpeg -i "%f" -c:v libx264 -c:a aac "%~nf_new.mkv"
将文件夹中的所有音频文件(WAV、MP3、OGG)转换为 MP3 格式
for %f in (*.wav *.mp3 *.ogg) do ffmpeg -i "%f" -b:a 128k -ar 44100 "%~nf_new.mp3"
将文件夹中的所有图像文件(JPG、PNG、BMP)转换为 PNG 格式
for %f in (*.jpg *.png *.bmp) do ffmpeg -i "%f" -q:v 80 -vf format=gray "%~nf_new.png"
正如你所看到的,FFmpeg 是一款非常灵活的多功能工具,几乎可以处理任何文件格式和转换任务。不过,在使用 FFmpeg 转换文件夹内的所有文件时,也有一些注意事项和限制需要注意。以下是其中一些:
粉丝福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。