使用ffmpeg将ALSA流式传输到rtsp流

时间:2019-02-12 10:42:52

标签: ffmpeg streaming

我想流式传输使用带有ffmpeg的ALSA麦克风捕获的音频。我可以将视频捕获到文件中,我想要的是ffmpeg来启动rtsp服务器,该服务器可以由本地网络中的(多个)客户端访问。但到目前为止,我什至无法使其与一个客户一起使用。

到目前为止我尝试过的事情:

ffmpeg -f alsa -ac 1 -ar 44100 -i hw:1,0  -t 10 test.wav

这很好用。文件已保存并且可以播放。这样输入就可以了。

ffmpeg -f alsa -ac 1 -ar 44100 -i hw:1,0  -f rtsp rtsp_transport tcp rtsp://localhost:8090/live.sdp

尝试干燥将导致错误,无法连接到服务器。奇怪的是,我想告诉ffmpeg启动服务器。因此,我将使用

ffserver ffserver.conf

带有包含的配置文件

Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -
NoDaemon
<Feed live.sdp>

这将启动服务器,或者看起来如此。现在,再次从上方尝试ffmpeg命令,我得到了

[tcp @ 0x11d2490] Connection to tcp://localhost:8090?timeout=0 failed (Connection refused), trying next address
Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing inputStream mapping:
  Stream #0:0 -> #0:0 (pcm_s16le (native) -> aac (native))
    Last message repeated 1 times

所以我想,也许我应该声明一个输出编解码器,所以:

ffmpeg -f alsa -ac 1 -ar 44100 -i hw:1,0 -codec:a libmp3lame -q:a 2  -f rtsp rtsp_transport tcp rtsp://localhost:8090/live.sdp

使用不同的编解码器会产生几乎相同的错误:

[tcp @ 0x24d8630] Connection to tcp://localhost:8090?timeout=0 failed (Connection refused), trying next address
Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing inputStream mapping:
  Stream #0:0 -> #0:0 (pcm_s16le (native) -> mp3 (libmp3lame))
    Last message repeated 1 times

有什么提示我想念的吗?

0 个答案:

没有答案