我有一个应用程序可以在存储在缓冲区中的LPCM中记录原始音频数据。我想将数据封装在传输流中,并通过UDP将该传输流发送到另一台主机上的流分段器(根据HTTP Live Streaming规范)。
FFmpeg提供了一个命令行实用程序来执行此操作,但文件作为输入
ffmpeg -re -i output.aac -acodec copy -f mpegts udp://127.0.0.1:5555
。
我的第一个想法是使用FFmpeg API,尤其是 libavformat 库。 libavformat是否提供了一个可以用来将LPCM中的音频封装到传输流中的复用器,还是我必须从头开始实现它?
我找到了这个源代码https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/mpegts.c,但我不确定它是否真的能满足我的要求。
感谢您的帮助,
答案 0 :(得分:0)
您可以直接通过libavformat使用ts muxer。但是,您也可以使用-i -
将音频传输到ffmpeg答案 1 :(得分:0)
因此,基于您的评论,不需要它必须是TS中的LPCM,您需要:
这里有一个合理的例子:https://github.com/rvs/ffmpeg/blob/master/libavformat/output-example.c
正如szatmary之前的回答中所提到的那样你也可以把它管道到ffmpeg,这可能是最简单的