FFmpeg RTMP转RTP

ffmpeg拉取RTMP流,并转换输出RTP流

由于RTP的一些限制,所以需要将音、视频分开输出,不然的话会提示

FFmpeg Only one stream supported in the RTP muxer

ffmpeg -re -i rtmp://192.168.3.38:21935/phone/123456  -vn -acodec pcm_alaw  -f rtp rtp://192.168.3.6:6000 -vcodec copy -an -f rtp rtp:192.168.3.6:5000

此时会在终端打印出SDP信息

ffpmeg RTMP -> RTP SDP信息​​​​

将SDP信息

v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
t=0 0
a=tool:libavformat 58.17.101
m=audio 6000 RTP/AVP 97
c=IN IP4 192.168.3.6
b=AS:128
a=rtpmap:97 PCMA/16000/1
m=video 5000 RTP/AVP 96
c=IN IP4 192.168.3.6
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z2QAFqy0C4KIgA==,aO48sA==; profile-level-id=640016 

保存为SDP文本文件

注意,这里PCMA的payload type是97,而不是8,千万不要手贱去改这些信息 

这里h264的SPS信息,每次也都不同(http://www.360doc.com/content/12/0627/17/2660674_220789931.shtml)

使用ffplay播放音视频流

ffplay -protocol_whitelist file,udp,rtp -i test.pcma.h264.sdp -fflags nobuffer

这样就可以用ffplay播放了,当然也可以直接用VLC播放器打开SDP文本文件播放音视频流

虽然可以播放出来,并且语音和视频也是同步的,但延迟有点大,3-5s样子

参考资料:

FFmpeg Only one stream supported in the RTP muxer

ffmpeg对RTP直播流的转发实现

使用FFmpeg命令行进行UDP、RTP推流(H264、TS),ffplay接收

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值