Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >rtp推流如何使用ffmpeg配置rtp打包模式?

rtp推流如何使用ffmpeg配置rtp打包模式?

原创
作者头像
TSINGSEE青犀视频
修改于 2021-02-25 02:25:19
修改于 2021-02-25 02:25:19
2.4K1
举报
文章被收录于专栏:TSINGSEE青犀视频TSINGSEE青犀视频

关于使用rtp推流,TSINGSEE青犀视频团队实际已经研发了很长时间,其中也碰到了不少问题,比如RTP推流客户端无法解析播放,或者遇到不同的报错,但这些目前都已经有了比较完善的解决办法。

在使用RTP推流时,默认ffmpeg使用的打包模式是packetization-mode=1,本文我们和大家分享另一个比较实用的技巧,就是使用ffmpeg配置rtp打包模式。

如何修改打包模式?关于RTP打包模式的说明如下:

目前ffmpeg默认使用的是1: Not interleaved 模式,针对客户的需要,服务端不支持STAP-A的组包模式,需要每个包单独发送,所以需要配置Single NAL模式。

ffmpeg 提供了h264_mode0配置

可以通过接口av_dict_set进行配置

配置完成后,还有个问题,需要配置pkt size,否则I帧无法完整发送,默认pkt size是1024个字节,而一般I帧都大于1024个字节,导致I帧发送不完整,图像传输失败,需要配置pkt size,在rtp url后面加上如下所示内容: rtp://192.168.99.138:6666?pkt_size=65535

这样就配置完成了,可以通过wireshark抓包看,是否配置成功。

配置前抓包:

可以看到有组包现象 STAP-A 。

配置后抓包:

可以看到非I帧之间没有STAP-A的组包模式了,每个NAL都是单独发送的。同时看到对应的SDP也是packetization-mode=0。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
通过ffmpeg命令怎么设置?
通过ffmpeg命令怎么设置?
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
FFmpeg推流命令总结
今天考虑一个mcu混合的实现,也就是接收多路过来的rtp流,然后转发出去一路的rtmp流,使用ffmpeg测试做的记录,刚开始一直通过ffmpeg推送的文件流不能满足要求,还是对参数配置不熟悉;
呱牛笔记
2023/05/02
6.5K0
FFmpeg推流命令总结
AVB简介--第三篇:AVTP简介
本文是AVB系列文章的第三篇,主要介绍AVB协议族中的音视频传输协议AVTP(IEEE Std 1722-2016)。
coderhuo
2020/04/21
9.1K6
AVB简介--第三篇:AVTP简介
rtp协议详解
RTP全名是Real-time Transport Protocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550。RFC3550不仅定义了RTP,而且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,即实时传输控制协议)。RTP用来为IP网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务。RTP为Internet上端到端的实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由RTCP来提供。
全栈程序员站长
2022/09/07
1.6K0
rtp协议详解
音视频传输:RTP协议详解和H.264打包方案
前面讲解了PS、TS、FLV这三种媒体封装格式,现在新开一个系列讲解下传输协议,这里面会包含RTP、RTSP、HLS、RTMP等。当然最复杂的封装格式MP4在准备中,后面会把封装格式这个系列讲完。今天要说的RTP传输协议,有人也认为这是封装格式,因为协议中打包音视频要填写时间戳的相关信息,FFmpeg就把这个作为封装格式。我觉得都没啥问题,不过我更偏向认为是传输协议。
潇湘落木
2020/11/12
6.8K0
音视频传输:RTP协议详解和H.264打包方案
RTP协议–图文解释
当应用程序建立一个RTP会话时,应用程序将确定一对目的传输地址。目的传输地址由一个网络地址和一对端口组成,有两个端口:一个给RTP包,一个给RTCP包,使得RTP/RTCP数据能够正确发送。RTP数据发向偶数的UDP端口,而对应的控制信号RTCP数据发向相邻的奇数UDP端口(偶数的UDP端口+1),这样就构成一个UDP端口对。 RTP的发送过程如下,接收过程则相反。
全栈程序员站长
2022/09/13
3K0
RTP协议–图文解释
偶遇FFMpeg(四)-FFmpeg PC端推流
之前在Android集成FFmpeg。主要还是基于命令行的方式进行操作。刚刚好最近又在研究推流相关的东西。看了一些博文。和做了一些实践。 就希望通过本文记录袭来。 本文的大体结构如下
deep_sadness
2018/08/30
2.5K0
偶遇FFMpeg(四)-FFmpeg PC端推流
Android平台下使用FFmpeg进行RTMP推流(摄像头推流)
前面讲到了在Android平台下使用FFmpeg进行RTMP推流(视频文件推流),里面主要是介绍如何解析视频文件并进行推流,今天要给大家介绍如何在Android平台下获取采集的图像,并进行编码推流。同时项目工程也是在之前的代码基础上新增功能。源码仓库地址FFmpegSample,这一节对应的代码版本是v1.2。大家注意不要下载错了版本。主要涉及的代码。
用户2929716
2018/08/23
6.2K0
Android平台下使用FFmpeg进行RTMP推流(摄像头推流)
RTP over TCP
通常来说,RTSP提供UDP方式发送RTP流。当然,发送流媒体时,UDP往往是更好的选择。
lcyw
2022/06/10
1.8K0
RTP over TCP
基于FFmpeg进行RTMP推流(一)简介
这里的bin、include、lib就是我们刚才在FFmpeg下载的相关文件。 src是我们的项目源码目录。 新建Win32控制台应用程序、选择位置、项目名称。注意:去掉“为结局方案创建目录”的勾选
用户2929716
2018/08/23
14.1K0
基于FFmpeg进行RTMP推流(一)简介
TSINGSEE青犀视频开发ffmpegAPI实现RTP推流客户端无法解析播放如何解决?
TSINGSEE青犀视频团队经常会通过很多不同的编译方式来实现视频推流,对比各方法下推流的差异。在使用RTP实现推流时,出现SPS于PPS在一个RTP包中,客户端无法解析导致播放失败的问题。
TSINGSEE青犀视频
2021/02/01
1.2K0
H.264学习笔记
MPEG是动态图像专家组(Moving Picture Experts Group)的简称,它可以指:
lcyw
2022/06/10
1.4K0
H.264学习笔记
使用FFmpeg命令行进行UDP、RTP推流(H264、TS),ffplay接收
我们在开发网络程序时经常用到UDP或RTP来发送和接收流媒体,而开发程序完毕需要搭建一个环境测试,这时候可能你需要一个推流端或接收端。对于推流端,我们可以借助FFmpeg工具轻松完成该功能,只需要敲一条命令后就可以实现发流,并且支持多种网络协议(UDP/RTP/RTSP/RTMP)。而接收端我们可以使用ffplay,这个程序也是在FFmpeg工具包的Bin目录里面。大家可以根据自己需要使用这两个工具进行推流或接收,下面就以传输协议UDP、RTP为基础,介绍几种最常见的推流场景下两个工具的用法。
全栈程序员站长
2022/07/02
5.7K0
FFmpeg流媒体处理-收流与推流
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10623968.html
叶余
2019/04/19
10.3K1
FFmpeg流媒体处理-收流与推流
SRS:webrtc_to_rtmp详解
SRS(Simple Realtime Server),自我开始做音视频行业开始,就有人力推给我的一个开源库,虽然我到现在还是音频领域的入门出徘徊,但也积攒了一些对srs的使用经验。
何其不顾四月天
2024/07/31
4130
快直播-基于WebRTC升级的低延时直播
随着直播行业的快速发展,直播带货秒杀和在线教育答题等应用场景对直播延时的要求越来越严苛。今天的技术解码就由费伟老师为大家带来腾讯云在快直播方面的一些分享! 随着直播行业的快速发展,特别是在今年疫情的影响下,各种低延时的直播场景得到了爆发性发展。最典型的应用就是直播带货秒杀和在线教育答题。这些应用场景的核心需求就是实时音视频互动,而传统直播技术基于HLS、FLV/RTMP协议具有秒级别的延时,高延时是制约互动效果的关键因素。快直播就是针对传统直播协议高延时的痛点,基于WebRTC技术实现毫秒级延
腾讯云音视频
2020/12/14
6.7K0
SDP在RTSP、国标GB28181、WebRTC中的实践
注意的是SDP虽然具备这些能力参数信息的描述功能,但是SDP并不是传输协议,需要用RTSP、SIP、HTTP等协议进行承载传输、交换,如果大家协调好了之后,就可以建立会话,完成真实的音视频码流传输,再完成解码和播放。
潇湘落木
2020/11/12
2.1K0
SDP在RTSP、国标GB28181、WebRTC中的实践
FFmpeg菜鸡互啄#第7篇#文件/rtsp推流到rtmp
关键步骤 avformat_open_input//打开输入文件/rtsp avformat_find_stream_info////获取音视频流信息 avformat_alloc_output_context2//创建输出上下文 avformat_new_stream//创建输出流 avcodec_copy_context//复制配置输出流 avio_open//打开io avformat_write_header//写入头信息 av_int
_gongluck
2018/03/08
3.3K0
1个音视频输入,拆解为1个MP4文件和2路RTP流,ffmpeg这么写
之前我们已经分享过很多关于音视频处理的文章。其中最绕不开的就是ffmpg工具,这个命令行工具构建了当今大小智能设备音频,视频,图片等多媒体文件处理的方方面面。
程序员小助手
2020/05/29
7710
Android PC投屏简单尝试(录屏直播)3—软解章(ImageReader+FFMpeg with X264)
通过ImageReader的回调,我们就可以得到截屏的数据了。第一遍文章是通过自定义的Socket 协议进行传输。这里通过FFmpeg,将得到的数据进行软件编码,然后同样通过RTMP进行推流。
deep_sadness
2018/12/14
1.7K0
Android PC投屏简单尝试(录屏直播)3—软解章(ImageReader+FFMpeg with X264)
GB28181的PS流分析: 封装 / 分包发送 / 接收组包 / 解析
    首先,我们来看看I帧的PS流格式,这里需要注意的是SPS、PPS之前要加上PES头部。如下图所示,其中绿色部分就是我们拿到的H.264裸流数据,须将它拆分成三段并在前面加上PES头部。这一点在GB28181标准中没有细说,需要通过分析海康IPC流才能看出。
lcyw
2022/11/23
3.5K0
GB28181的PS流分析: 封装 / 分包发送 / 接收组包 / 解析
相关推荐
FFmpeg推流命令总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档