当前位置: 首页 > news >正文

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

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

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

use ShellAPI;
{$R *.dfm}procedure ConvertWavToMp3(const InputFile, OutputFile: string);
varExecuteInfo: 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) thenShowMessage('转换成功.')elseShowMessage('转换失败: ' + 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 视频编码器,指定预设值以平衡编码速度和质量(如 veryfastfastmediumslowveryslow)。
  • -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 命令查看帮助信息。

http://www.lryc.cn/news/362679.html

相关文章:

  • 快速上手RabbitMQ,直接上开发!
  • 如何实现单例模式及不同实现方法分析-设计模式
  • wampserver安装与汉化
  • 解决MyBatis的N+1问题
  • 12-学生们参加各科测试的次数(高频 SQL 50 题基础版)
  • 2024网络与信息安全管理员职工职业技能竞赛re0220164094
  • Elasticsearch--easy-ES框架使用,轻松操作查询Elasticsearch,简化开发
  • 【教程】如何实现WordPress网站降级(用于解决插件和主题问题)
  • 思维导图-vb.net开发带进度条的复制文件夹功能c#复制文件夹
  • Linux文本处理三剑客之awk命令
  • 公差和配合
  • AI大模型应用开发实践:5.快速入门 Assistants API
  • stack和queue的模拟实现
  • 你的手机是如何控制你的手表之广播篇
  • 深入理解并发之LongAdder、DoubleAdder的实现原理
  • virtuoso原理图无法编辑
  • Kotlin协程中的作用域 `GlobalScope`、`lifecycleScope` 和 `viewModelScope`
  • leetcode739 每日温度
  • 【软件测试】自动化测试如何管理测试数据
  • Llama 3-V: 比GPT4-V小100倍的SOTA
  • Anaconda安装配置
  • 全面理解渗透测试
  • 「网络编程」基于 UDP 协议实现回显服务器
  • 云数融合与大数据技术在日常生活中的创新应用探索
  • ETCD 备份与还原
  • LeeCode 1787 DP
  • 如何有效屏蔽手机上的骚扰电话20240530
  • Linux CGroup资源限制(概念限制进程CPU使用)
  • Latex中标注通讯作者
  • PyQt5开发笔记:1.环境搭建与界面美化