问题
今天突发奇想,想把mp4视频转换为mp3来收听,于是想到了ffmpeg工具
步骤
安装ffmpeg环境
要在 Windows 上配置 FFmpeg 环境,你可以按照以下步骤进行操作:
-
下载 FFmpeg:
- 首先,你需要下载 FFmpeg 的 Windows 版本。你可以在 FFmpeg 官方网站(https://ffmpeg.org/download.html)上找到 Windows 版本的可执行文件。
-
解压缩文件:
- 下载后,解压缩 FFmpeg 文件到你选择的目录。例如,你可以将它解压缩到
C:\ffmpeg\
目录。
- 下载后,解压缩 FFmpeg 文件到你选择的目录。例如,你可以将它解压缩到
-
设置系统环境变量:
- 将 FFmpeg 的可执行文件目录添加到系统的 PATH 环境变量中,这样系统就可以在任何位置找到 FFmpeg。
- 右键单击“此电脑”(或“计算机”),然后选择“属性”。
- 点击“高级系统设置”。
- 在弹出的窗口中,点击“环境变量”按钮。
- 在“系统变量”下找到“Path”,然后点击“编辑”。
- 在编辑窗口中,点击“新建”,然后添加 FFmpeg 的可执行文件目录(例如
C:\ffmpeg\bin\
)。 - 确认并关闭所有窗口。
-
验证安装:
- 打开命令提示符(或 PowerShell)并输入
ffmpeg -version
,然后按 Enter 键。如果一切设置正确,它应该显示 FFmpeg 的版本信息。
- 打开命令提示符(或 PowerShell)并输入
完成这些步骤后,你的系统就已经配置好了 FFmpeg 环境。现在你可以在命令提示符或批处理脚本中使用 FFmpeg 来进行视频转换等操作。
powershell命令
切换到文件件目录下,执行下面的语句,把所有文件转换为mp3即可
Get-ChildItem -Filter *.mp4 | ForEach-Object {ffmpeg -i $_.FullName -vn -acodec libmp3lame -q:a 2 "$($_.BaseName).mp3"}
- 刚又想把一个mp3文件分成几部分,怎么弄,命令如下*
ffmpeg -i input.mp3 -f segment -segment_time 600 -c copy output_%03d.mp3
这个命令会将名为 input.mp3 的文件切割成每个时长为 600 秒的片段,并输出为 output_001.mp3、output_002.mp3 等等。
在这个命令中:
-i input.mp3 指定了输入文件名。
-f segment 表示使用 segment 格式进行分割。
-segment_time 600 指定了每个片段的时长,以秒为单位。
-c copy 表示使用拷贝方式进行分割,以保持音频质量不变。
output_%03d.mp3 是输出文件名的模板,%03d 表示输出文件名会以三位数字进行编号。
你可以根据需要调整 -segment_time 参数来设置不同的片段时长。
碰到的新问题
我有新下载了mp4文件,如果还按照上面的命令,岂不从头再来,显然不合适,所以要加一个判断,存在就不转换了。只转换不存在的。所以最后命令如下
Get-ChildItem -Filter *.mp4 | ForEach-Object {
$mp3FileName = "$($_.BaseName).mp3"
$mp3FilePath = Join-Path -Path $pwd -ChildPath $mp3FileName
if (-not (Test-Path $mp3FilePath)) {
ffmpeg -i $_.FullName -vn -acodec libmp3lame -q:a 2 $mp3FilePath
} else {
Write-Host "Skipping conversion for $mp3FileName. File already exists."
}
}
这个帖子我也是边操作,边完善,希望能帮助你,喜欢打赏