如何在.NET 8 C#项目中使用FFMpegCore将MP4转为MP3?
在.NET 8的C#项目中使用FFMpegCore将MP4转换为MP3
要实现MP4转MP3,核心是只保留音频流并指定MP3编码,你的原始代码包含了很多不必要的视频相关配置(比如视频滤镜、CRF参数),这些都需要移除,同时明确编码参数:
第一步:安装FFMpegCore NuGet包
确保项目已安装FFMpegCore包,可通过NuGet包管理器或命令行安装:
Install-Package FFMpegCore
或使用.NET CLI:
dotnet add package FFMpegCore
第二步:修正转换代码
因为MP3是纯音频格式,我们需要禁用视频流输出,并指定正确的音频编码:
using FFMpegCore; using FFMpegCore.Enums; public void ConvertMp4ToMp3(string sourcePath, string targetPath) { FFMpegArguments .FromFileInput(sourcePath) .OutputToFile(targetPath, false, options => options // 禁用视频流,MP3不需要视频轨道 .WithVideoCodec(VideoCodec.None) // 指定音频编码为MP3 .WithAudioCodec(AudioCodec.Mp3) // 设置音频可变比特率,4对应约192kbps,平衡音质与体积 .WithVariableBitrate(4)) .ProcessSynchronously(); }
关键参数说明
VideoCodec.None:告诉FFmpeg不输出任何视频流,避免生成包含无效空视频轨道的MP3文件。AudioCodec.Mp3:明确指定音频编码为MP3,确保输出文件是标准MP3格式。WithVariableBitrate(4):可变比特率范围1-9,数值越高音质越好、文件体积越大,4是日常使用的均衡值。
额外注意事项
- 系统需安装FFmpeg可执行文件,FFMpegCore依赖它运行,可通过以下代码指定FFmpeg路径:
FFMpegOptions.SetExecutablesPath(@"C:\your\ffmpeg\bin\folder"); - 若需要更精细的音频控制,可添加
WithAudioBitrate指定固定比特率,或调整其他音频参数。
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

