通过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 命令查看帮助信息。

相关推荐
MaximusCoder14 小时前
等保测评命令——达梦数据库 DM
linux·运维·数据库·安全·ffmpeg·安全威胁分析
EasyCVR17 小时前
从流媒体转发到智能分析:EasyCVR的视频技术演进
人工智能·ffmpeg·音视频·视频监控·gb28181
南宫乘风2 天前
从零开发AI诊断Agent:拆解LLM+Tools+Prompt三大核心
人工智能·ffmpeg·prompt
l1t3 天前
使用ffmpeg把英语四级听力MP3文件转成wav供模型识别
ffmpeg·语音识别
liulilittle5 天前
Windows 11 上搭建 YouTube 视频下载工具:yt-dlp + FFmpeg
windows·ffmpeg·音视频
指尖在键盘上舞动5 天前
Cannot find matching video player interface for ‘ffpyplayer‘.解决方案
linux·ubuntu·ffmpeg·psychopy·ffpyplayer
glumes5 天前
音视频教程-第二节
ffmpeg
softbangong5 天前
899-批量视频处理工具
ffmpeg·格式转换·批量处理·音频提取·视频处理工具·视频截取
智能工业品检测-奇妙智能7 天前
SpringBoot整合FFmpeg的方法
人工智能·ffmpeg·springboot·deepseek·openclaw
斌蔚司李7 天前
Windows 上安装 FFmpeg
windows·ffmpeg