我需要将使用 ffmpeg 不断更新的音频文件的内容流式传输到同一 LAN 上的另一台计算机。我已经下载了适用于 Windows 的 ffmpeg 静态构建。我了解在“ffmpeg”命令中指定目标 IP 地址和端口号的方法。但我不知道如何指定要流式传输的文件名。怎么办?
音频文件的格式没有限制。它可以是任何格式。
最佳答案
WAV 文件不是缓冲编码数据以进一步流式传输的最佳工具。
我更愿意使用 ffserver。这个想法是 ffmpeg 编码流并将其上传到 ffserver 的“提要文件”,客户端(例如您的“远程计算机”)通过 http 或 rtsp(rtp)从 ffserver 获取流(它可能是不同格式的相同流) ).
只需在此处添加音频流,将 ffmpeg 连接到它的源并将该远程计算机连接到流:
在 ffserver.conf 中定义单个流:
<Stream audio.sdp> Feed feed1.ffm Format rtp NoVideo AudioCodec libmp3lame AudioBitRate 64 AudioSampleRate 22050 </Stream>
或 AVI(MPEGTS、FLV 等)
<Stream audio.avi>
Feed feed1.ffm
Format avi
...
开始音频编码/上传到服务器:
ffmpeg -i [Your source] http://localhost:[ffserver's port]/feed1.ffm
开始在该“远程计算机”上获取 rtp(avi 等)流。
关于c++ - 来自使用 ffmpeg 的文件的音频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18957399/