今天突发奇想,想把mp4视频转换为mp3来收听,于是想到了ffmpeg工具
要在 Windows 上配置 FFmpeg 环境,你可以按照以下步骤进行操作:
下载 FFmpeg:
解压缩文件:
C:\ffmpeg\
目录。设置系统环境变量:
C:\ffmpeg\bin\
)。验证安装:
ffmpeg -version
,然后按 Enter 键。如果一切设置正确,它应该显示 FFmpeg 的版本信息。完成这些步骤后,你的系统就已经配置好了 FFmpeg 环境。现在你可以在命令提示符或批处理脚本中使用 FFmpeg 来进行视频转换等操作。
切换到文件件目录下,执行下面的语句,把所有文件转换为mp3即可
Get-ChildItem -Filter *.mp4 | ForEach-Object {ffmpeg -i $_.FullName -vn -acodec libmp3lame -q:a 2 "$($_.BaseName).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."
}
}
这个帖子我也是边操作,边完善,希望能帮助你,喜欢打赏