首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FFmpeg从RTP流创建RTMP流时无输出

使用FFmpeg从RTP流创建RTMP流时无输出
EN

Stack Overflow用户
提问于 2021-07-20 15:54:22
回答 1查看 218关注 0票数 0

我正在构建一个需要将RTP流转换为HLS流的服务。需求最近发生了变化,我现在必须从RTP流创建一个RTMP流,然后使用两个独立的FFmpeg进程将RTMP转换为HLS。问题是RTP to RTMP进程实际上不会向指定的RTMP URL输出任何内容。

使用以下命令直接从RTP转到HLS (为简洁起见,删除了一些选项)可以正常工作:

代码语言:javascript
复制
ffmpeg -f sdp \
       -protocol_whitelist file,udp,rtp \
       -i example.sdp \
       -g 2 \
       -hls_time 2.0 \
       -hls_list_size 5 \
       -vcodec libx264 \
       -acodec aac \
       -f hls chunks/test-master.m3u8

但是,使用以下命令将RTP转换为RTMP不会产生任何输出,尽管使用了相同的SDP文件,但似乎也没有接收到任何输入:

代码语言:javascript
复制
ffmpeg -f sdp \
       -protocol_whitelist pipe,udp,rtp \
       -i example.sdp \
       -g 2 \
       -vcodec libx264 \
       -acodec aac \
       -f flv rtmp://localhost/test-stream

以下是SDP文件外观的示例:

代码语言:javascript
复制
v=0
o=- 0 0 IN IP4 127.0.0.1
s=Test
c=IN IP4 127.0.0.1
t=0 0
m=audio 37000 RTP/AVPF 97
a=rtpmap:97 opus/48000/2
a=fmtp:97 minptime=10;useinbandfec=1
m=video 37002 RTP/AVPF 96
a=rtpmap:96 H264/90000
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001E

MediaSoup生成RTP流,端口和主机匹配。我已经使用nc验证了实际上有一个数据流通过有问题的端口。没有错误消息。我是不是漏掉了什么明显的东西?

EN

回答 1

Stack Overflow用户

发布于 2021-08-28 10:39:06

MediaSoup是用选择转发单元( SFU )构建的。正如我所看到的,您正在使用:m=video 37002 RTP/AVPF 96 a=rtpmap:96 H264/90000 a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001E。你需要确保视频流的消费者使用相同的视频编解码器,这可以通过console.log(consumer.rtpParameters.codecs);来完成

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68451391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档