我正在尝试实现一个基于FFmpeg的客户机/服务器应用程序。不幸的是,RTP_MPEGTS并没有记录在官方的FFmpeg文档.格式中。不管怎样,我从这个旧螺纹中找到了灵感。
服务器端
(1)捕获麦克风音频作为输入。(2)将其编码为pcm8khzmono;(3)通过rtp协议将其本地发送为RTP_MPEGTS格式。
ffmpeg -f avfoundation -i none:2 -ar 8000 -acodec pcm_u8 -ac 1 -f rtp_mpegts rtp://127.0.0.1:41954客户端(在同一台计算机上)
(1)接收rtp音频流输入(2)将其写入文件或回放。
ffmpeg -i rtp://127.0.0.1:41954 -vcodec copy -y "output.wav"-vcodec copy是因为我已经在另一个-acodec copy无法工作的rtp流中验证了它。谢谢你提供的帮助。
发布于 2020-03-07 13:55:06
我用一个.aac文件对它进行了测试,它起了作用:
流:
(注意,我使用多播地址。
但是,如果您在同一台计算机上测试流和接收,则可以将127.0.0.1用作本地主机的回送地址。)
ffmpeg -f lavfi -i testsrc \
-stream_loop -1 -re -i "music.aac" \
-map 0:v -map 1:a \
-ar 8000 -ac 1 \
-f rtp_mpegts "rtp://239.1.1.9:1234"您需要一个视频源的rtp_mpegts穆克塞。我用lavfi创建了一个。
我使用-stream_loop为我的测试永远循环.aac文件。你不需要这个麦克风作为输入。
捕获流:
ffmpeg -y -i "rtp://239.1.1.9:1234" -c:a pcm_u8 "captured_stream.wav"我在捕获时使用-c:a pcm_u8,因为在流中使用它在捕获端不起作用。
输出是一个低质量的8bit,8kHz mono音频文件,但这正是您所要求的。
https://stackoverflow.com/questions/48407760
复制相似问题