通过ffmpeg 将wav格式转为mp3格式.

通过ffmpeg实现将wav转为mp3格式.需要下载一个ffmpeg放到执行文件所在目录.

我ffmpeg的下载地址为:ffmpeg.exe下载-ffmpeg.exe32&64位下载免费版-旋风软件园

use ShellAPI;
{$R *.dfm}

procedure ConvertWavToMp3(const InputFile, OutputFile: string);
var
  ExecuteInfo: TShellExecuteInfo;
  FFmpegPath: string;
begin
  // 确定ffmpeg.exe的路径,这里假设它已经在PATH环境变量中,否则需要指定完整路径
  FFmpegPath := 'ffmpeg.exe';

  ZeroMemory(@ExecuteInfo, SizeOf(ExecuteInfo));
  ExecuteInfo.cbSize := SizeOf(ExecuteInfo);
  ExecuteInfo.lpVerb := 'open';
  ExecuteInfo.lpFile := PChar(FFmpegPath);
  ExecuteInfo.lpParameters := PChar(Format(' -i "%s" -vn -acodec libmp3lame -aq 2 "%s"', [InputFile, OutputFile]));
  ExecuteInfo.nShow := SW_HIDE; // 隐藏命令行窗口
//  ExecuteInfo.hwnd := 0;

  // 执行转换命令
  if ShellExecuteEx(@ExecuteInfo) then
    ShowMessage('转换成功.')
  else
    ShowMessage('转换失败: ' + SysErrorMessage(GetLastError()));
end;

ffmpeg 是一个功能强大的多媒体处理工具,它支持大量的输入和输出格式,以及多种编解码器。由于其功能的多样性,ffmpeg 的参数列表也非常丰富。以下是一些常用的 ffmpeg 参数和选项的概述:

基本参数

  • -i input_file: 指定输入文件。
  • -y: 如果输出文件已存在,则覆盖它。
  • -n: 如果输出文件已存在,则不覆盖它。
  • -c:v codec: 设置视频编解码器(例如 -c:v libx264)。
  • -c:a codec: 设置音频编解码器(例如 -c:a aac)。
  • -preset: 用于 x264 视频编码器,指定预设值以平衡编码速度和质量(如 veryfast, fast, medium, slow, veryslow)。
  • -crf: 用于 x264 视频编码器,指定恒定速率因子(CRF),范围通常为 0-51,其中较低的值表示更高的质量。
  • -b:v bitrate: 设置视频比特率(例如 -b:v 1M)。
  • -b:a bitrate: 设置音频比特率(例如 -b:a 128k)。
  • -s size: 设置视频大小(例如 -s 640x480)。
  • -aspect aspect: 设置视频宽高比(例如 -aspect 16:9)。
  • -r fps: 设置帧率(例如 -r 30)。
  • -g gop_size: 设置 GOP(Group of Pictures)大小,对于 x264 编码器。
  • -pix_fmt format: 设置像素格式(例如 -pix_fmt yuv420p)。
  • -threads n: 设置线程数(用于并行处理)。
  • -f format: 强制设置输出格式(例如 -f mp4)。

输入/输出选项

  • -ss [time_off]: 从输入文件中跳转到指定时间开始处理(例如 -ss 00:00:10)。
  • -t [duration]: 设置处理时长(例如 -t 00:00:30)。
  • -map: 选择输入文件的流进行映射到输出。
  • -shortest: 对于有多个输入的命令,以最短的输入时长作为输出时长。
  • -segment_time: 用于视频分割,指定每个片段的时长。
  • -segment_list: 对于视频分割,创建一个包含片段名称的列表文件。

过滤器(Filters)

ffmpeg 支持大量的视频和音频过滤器,用于转换、修改或增强媒体内容。过滤器通常在 -vf(视频过滤器)或 -af(音频过滤器)选项后指定。

  • -vf filter_graph: 定义视频过滤器图(例如 -vf "eq=brightness=0.1")。
  • -af filter_graph: 定义音频过滤器图(例如 -af "volume=0.5")。

其他常用选项

  • -metadata: 设置元数据(例如 -metadata title="My Video")。
  • -loglevel level: 设置日志级别(例如 -loglevel verbose)。
  • -stats: 显示处理过程中的统计信息。
  • -progress url: 将进度信息发送到指定的 URL(通常是一个管道文件或 TCP 服务器)。
  • -vsync method: 视频同步方法(例如 -vsync vfr)。
  • -async samples_per_second: 音频同步方法(设置音频样本率)。

这只是一个非常简化的 ffmpeg 参数列表概述。由于 ffmpeg 的功能非常丰富,还有许多其他参数和选项可供使用。为了获得最准确和最新的信息,建议查阅 ffmpeg 的官方文档或使用 ffmpeg -h 命令查看帮助信息。

相关推荐
MonkeyKing_sunyuhua19 小时前
FFmpeg将mp4的文件转化为m4a
ffmpeg
zanglengyu21 小时前
RK3568硬解码并与Qt界面融合显示深入探究
开发语言·qt·ffmpeg·rk3568硬解码rtsp
橘子味的茶二2 天前
ffmpeg内存模型
ffmpeg
TPCloud2 天前
windows 11编译安装ffmpeg(包含ffplay)
windows·ffmpeg·源码安装·mysys
runing_an_min2 天前
ffmpeg视频滤镜:缓入缓出-fade
ffmpeg·音视频·fade·缓出·缓入
ssslar3 天前
FFMPEG录屏(22)--- Linux 下基于X11枚举所有显示屏,并获取大小和截图等信息
linux·运维·ffmpeg
MonkeyKing_sunyuhua3 天前
FFmpeg 怎么裁剪m4a的音频,从一个时间点开始,裁剪15秒钟的视频
ffmpeg·音视频
DO_Community3 天前
教程:FFmpeg结合GPU实现720p至4K视频转换
ffmpeg·音视频
x66ccff3 天前
使用NVIDIA GPU加速FFmpeg视频压制:完全指南
ffmpeg·音视频
冷眼Σ(-᷅_-᷄๑)4 天前
如何使用ffmpeg命令行进行录屏
ffmpeg