问题

今天突发奇想,想把mp4视频转换为mp3来收听,于是想到了ffmpeg工具

步骤

安装ffmpeg环境

要在 Windows 上配置 FFmpeg 环境,你可以按照以下步骤进行操作:

  1. 下载 FFmpeg

    • 首先,你需要下载 FFmpeg 的 Windows 版本。你可以在 FFmpeg 官方网站(https://ffmpeg.org/download.html)上找到 Windows 版本的可执行文件。
  2. 解压缩文件

    • 下载后,解压缩 FFmpeg 文件到你选择的目录。例如,你可以将它解压缩到 C:\ffmpeg\ 目录。
  3. 设置系统环境变量

    • 将 FFmpeg 的可执行文件目录添加到系统的 PATH 环境变量中,这样系统就可以在任何位置找到 FFmpeg。
    • 右键单击“此电脑”(或“计算机”),然后选择“属性”。
    • 点击“高级系统设置”。
    • 在弹出的窗口中,点击“环境变量”按钮。
    • 在“系统变量”下找到“Path”,然后点击“编辑”。
    • 在编辑窗口中,点击“新建”,然后添加 FFmpeg 的可执行文件目录(例如 C:\ffmpeg\bin\)。
    • 确认并关闭所有窗口。
  4. 验证安装

    • 打开命令提示符(或 PowerShell)并输入 ffmpeg -version,然后按 Enter 键。如果一切设置正确,它应该显示 FFmpeg 的版本信息。

完成这些步骤后,你的系统就已经配置好了 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 $mp3FileNameif (-not (Test-Path $mp3FilePath)) {ffmpeg -i $_.FullName -vn -acodec libmp3lame -q:a 2 $mp3FilePath} else {Write-Host "Skipping conversion for $mp3FileName. File already exists."}}

这个帖子我也是边操作,边完善,希望能帮助你,喜欢打赏