Audio 基于RTP协议的FFmpeg-RTP\u-Mpegts
我正在尝试实现一个基于FFmpeg的客户机/服务器应用程序。不幸的是,RTP_MPEGTS没有在官方文件中记录。 不管怎样,我从中找到了灵感 服务器端 (1) 捕获麦克风音频作为输入。(2) 将其编码为pcm 8khz单声道,并(3)通过RTP协议以RTP_MPEGTS格式在本地发送Audio 基于RTP协议的FFmpeg-RTP\u-Mpegts,audio,ffmpeg,udp,rtp,mpeg2-ts,Audio,Ffmpeg,Udp,Rtp,Mpeg2 Ts,我正在尝试实现一个基于FFmpeg的客户机/服务器应用程序。不幸的是,RTP_MPEGTS没有在官方文件中记录。 不管怎样,我从中找到了灵感 服务器端 (1) 捕获麦克风音频作为输入。(2) 将其编码为pcm 8khz单声道,并(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 这是可行的
ffmpeg -f avfoundation -i none:2 -ar 8000 -acodec pcm_u8 -ac 1 -f rtp_mpegts rtp://127.0.0.1:41954
- 这是可行的,但在启动时它会发出警报“[mpegts@0x7fda13024600]帧大小未设置”
ffmpeg -i rtp://127.0.0.1:41954 -vcodec copy -y "output.wav"
- 我正在使用
,因为我已经在另一个rtp流中验证了它,而-vcodec copy
在该流中不起作用-acodec copy
- 此选项被卡住,在使用Ctrl+C快捷键关闭时,它会打印:
Input #0, rtp, from 'rtp://127.0.0.1:41954': Duration: N/A, start: 8.956122, bitrate: N/A Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0: Data: bin_data ([6][0][0][0] / 0x0006) Output #0, wav, to 'output.wav': Output file #0 does not contain any stream
感谢您提供的帮助。我使用
.aac
文件对此进行了测试,结果显示:
流媒体:
ffmpeg -y -i "rtp://239.1.1.9:1234" -c:a pcm_u8 "captured_stream.wav"
(注意,我使用多播地址
但是如果在同一台机器上测试流式传输和接收,则可以使用127.0.0.1
作为本地主机的环回地址。)
您需要rtp\u mpegts
muxer的视频源。我用lavfi
创建了一个
我使用-stream\u 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
音频文件,但这正是您所要求的。也许您应该在-i…
之前添加接收机端-probesize 10M
和-analyzeduration 10M
。AFAIK udp和rtp几乎是一样的,如果您发现在Mpegts和udp中发送方-接收方线路可以按照您的需要工作,只需将mpeg\u ts
更改为rtp\u Mpegts
,将udp
更改为rtp
。