【问题标题】:VLC: How to stream a wave via HTTPVLC:如何通过 HTTP 流式传输 wave
【发布时间】:2020-01-08 13:14:29
【问题描述】:

我想使用 VLC 通过 HTTP 从我的 rapsberry 麦克风流式传输。

这个命令可以正常工作:

vlc -vvv alsa://hw:1,0 --sout '#transcode{vcodec=none,acodec=mpga,ab=128,channels=2,samplerate=44100}:standard{access=http,mux=mp3,dst=192.168.178.30:8080}'

但是当将代码更改为 s16l 并将 mux 更改为 wav 时,我在 VLC 中听不到任何声音。

这是我尝试过的命令:

vlc -vvv alsa://hw:1,0 --sout '#transcode{vcodec=none,acodec=s16l,channels=1,samplerate=16000,scodec=none}:standard{access=http,mux=wav,dst=192.168.178.30:8080}' 

使用 RTP 的相同编解码器可以工作:

vlc -vvv alsa://hw:1,0 --sout '#transcode{vcodec=none,acodec=s16l,channels=1,samplerate=16000,scodec=none}:rtp{dst=192.168.178.30,port=1234,sdp=rtsp://192.168.178.30:8080/test.sdp}'

一些日志:https://gist.github.com/timaschew/9e7e027cd1b371b01b0f186f23b47068

【问题讨论】:

    标签: raspberry-pi vlc audio-streaming libvlc


    【解决方案1】:

    并非所有编解码器都可以复用,请查看VLC documentation

    目前 PCM(wave) 只能在 RTP 中复用。

    mux 是流式传输所需的封装方式。 VLC 中的wav 是一个用于存储的容器。

    【讨论】:

    • 有没有办法不通过 HTTP 复用 PCM。我的意思是只发送 1 对 1?
    • AFAIK 不适用于 VLC。
    【解决方案2】:

    Wave 是一种文件容器类型,它可以容纳不同类型的编解码器数据(压缩/未压缩)。

    [Wiki]

    WAV 文件中的音频可以编码为多种音频编码格式,例如 GSM 或 MP3,以减小文件大小。

    这是比较单声道(非立体声)音频质量和可用于 WAV 文件的音频编码格式的压缩比特率的参考,包括 PCM、ADPCM、Microsoft GSM 06.10、CELP、SBC、Truespeech 和 MPEG Layer-3。

    For HTTP streaming using VLC

    选择您需要流式传输的编解码器,如 mp3 编解码器。

    注意:这里不适用Muxing

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      • 2012-04-25
      • 2013-05-01
      • 1970-01-01
      相关资源
      最近更新 更多