You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VLC.DotNet保存流媒体时配置mediaOption修改采样率及格式咨询

VLC.DotNet 流媒体转码保存配置解答

VLC.DotNet 是原生 libVLC 库的 .NET 封装,所有传入的 mediaOption 参数 1:1 对应 libVLC 的命令行配置项,你提到的修改音频采样率、自定义输出格式两个需求均原生支持。

你当前使用的配置是直接将源流数据原样写入文件,没有经过转码流程,因此无法修改编码参数、调整输出格式,需要在流输出链中加入转码模块实现相关能力。


核心能力说明

1. 修改音频采样率

在转码配置中通过 samplerate 参数指定目标采样率即可,单位为 Hz,常用值为 44100(CD音质)、48000(视频常用采样率),搭配转码模块的其他音频参数还可以自定义声道数、音频码率、编码格式:

  • acodec:指定目标音频编码
  • channels:指定输出声道数
  • ab:指定音频码率,单位为 bps
  • vcodec=none:如果仅需要处理音频流,可以加这个参数关闭视频转码逻辑,降低资源占用

2. 自定义输出格式(含PCM输出)

通过指定 acodec 和输出文件后缀即可自定义输出格式,PCM 输出支持两种常用模式:

  • 裸PCM原始流:acodec 设为 s16l(16位小端PCM,是行业通用的无压缩PCM格式),输出文件后缀用 .pcm。注意裸PCM没有文件头信息,后续播放/处理时需要自行传入采样率、声道数、位深参数才能正常解析
  • 带WAV头的PCM文件:acodec 同样设为 s16l,输出文件后缀改为 .wav,libVLC 会自动添加标准WAV文件头,可直接被绝大多数播放器识别播放

其他格式也可以通过相同逻辑配置,比如输出MP3就把acodec设为mp3、输出AAC就设为mp4a,按需搭配码率、采样率参数即可。


修改后的代码示例

以输出44.1kHz、双声道、16位裸PCM文件为例,只需要替换原代码中的mediaOptions配置即可:

// 输出裸PCM用.pcm后缀,输出WAV用.wav后缀
var destination = Path.Combine(currentDirectory, "record.pcm");

using (var mediaPlayer = new Vlc.DotNet.Core.VlcMediaPlayer(libDirectory))
{
    var mediaOptions = new[]
    {
        // 流链路:先配置转码参数,再写入文件
        $":sout=#transcode{{vcodec=none,acodec=s16l,samplerate=44100,channels=2}}:file{{dst={destination}}}",
        ":sout-keep"
    };

    mediaPlayer.SetMedia(new Uri("http://hls1.addictradio.net/addictrock_aac_hls/playlist.m3u8"),
        mediaOptions);

    mediaPlayer.Play();

    Console.WriteLine($"Recording in {destination}");
    Console.WriteLine("Press any key to exit");
    Console.ReadKey();
}

参数查询方式

不需要专门查找VLC.DotNet的专属文档,所有可配置参数和原生libVLC完全一致,你可以在本地安装VLC播放器后,在命令行执行vlc -H输出全量参数说明,搜索transcode、sout关键词即可找到所有流输出、转码相关的可配置项及取值说明。

内容的提问来源于stack exchange,提问作者Nik Dell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 00:54:44