ortp发送h264问题

LinuxInEmbedded 2013-12-09 06:01:28
我打算用ortp发送h264,但是ortp库里的h264这种payload并没有被av_profile_init调用,只是作为附加在下面补充了,说是可以在库外部手动添加进去,如下:

/* these are extra payload types that can be used dynamically */
PayloadType payload_type_lpc1015={
TYPE( PAYLOAD_AUDIO_PACKETIZED),
CLOCK_RATE(8000),
BITS_PER_SAMPLE(0),
ZERO_PATTERN(NULL),
PATTERN_LENGTH(0),
NORMAL_BITRATE(2400),
MIME_TYPE ("1015"),
CHANNELS(1)
};
。。。
PayloadType payload_type_h264={
TYPE( PAYLOAD_VIDEO),
CLOCK_RATE(90000),
BITS_PER_SAMPLE(0),
ZERO_PATTERN(NULL),
PATTERN_LENGTH(0),
NORMAL_BITRATE(256000),
MIME_TYPE ("H264"),
CHANNELS(0)
};
。。。
我想了解的是我如何在外部添加进去这个payload?av_profile是库里面的一个全局变量,编译了库以后会生成一部分函数供应用程序调用,从哪儿看这个库导出来的函数哪些是对外可见的?哪些是不可见的?看生成的.h文件吗?凡是在.h里声明的都可见?还有全局变量av_profile,也是一样的问题,是否允许在外部访问呢?
...全文
624 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqs1994 2014-12-23
  • 打赏
  • 举报
回复
引用 1 楼 ShenDuYouLan 的回复:
我改过payload以后发生到vlc,提示如下: SDP required: A description in SDP format is required to receive the RTP stream. Note that rtp:// URIs cannot work with dynamic RTP payload format (2). 又遇到类似情况的吗?麻烦指点一下
楼主,payload要怎么改啊?能教一下吗?
LinuxInEmbedded 2013-12-17
  • 打赏
  • 举报
回复
引用 7 楼 beginning1126 的回复:
rtp分装264水深得很,一句话两句话很难说清楚,协议如下 rtp h264:rfc3984 sdp:rfc4566
再请教一个问题,我想了解h264的NAL层的编码标准对应的RFC是多少? 我现在的情况是按帧获取的h264码流可以用暴风影音播放,但是我不是很了解NAL标准,我逐帧查看数据发现帧类型是1和5,只有这2种。我想知道pps和sps这两张参数在哪儿?如果我的码流中没有这两个参数,暴风是如何播放的?
beginning1126 2013-12-17
  • 打赏
  • 举报
回复
引用 13 楼 beginning1126 的回复:
[quote=引用 12 楼 ShenDuYouLan 的回复:] [quote=引用 7 楼 beginning1126 的回复:] rtp分装264水深得很,一句话两句话很难说清楚,协议如下 rtp h264:rfc3984 sdp:rfc4566
再请教一个问题,我想了解h264的NAL层的编码标准对应的RFC是多少? 我现在的情况是按帧获取的h264码流可以用暴风影音播放,但是我不是很了解NAL标准,我逐帧查看数据发现帧类型是1和5,只有这2种。我想知道pps和sps这两张参数在哪儿?如果我的码流中没有这两个参数,暴风是如何播放的?[/quote] ISO_IEC_14496-15[/quote] 1、也可以试下工具Elecard,或许能解析的了,如果是nalu包的话。 2、pps、sps是放到关键帧里面的。7是sps,8是pps 3、在sdp信息里面也可以包括pps和sps 4、基本每个关键帧都会有,5是关键很、1是P帧
beginning1126 2013-12-17
  • 打赏
  • 举报
回复
引用 12 楼 ShenDuYouLan 的回复:
[quote=引用 7 楼 beginning1126 的回复:] rtp分装264水深得很,一句话两句话很难说清楚,协议如下 rtp h264:rfc3984 sdp:rfc4566
再请教一个问题,我想了解h264的NAL层的编码标准对应的RFC是多少? 我现在的情况是按帧获取的h264码流可以用暴风影音播放,但是我不是很了解NAL标准,我逐帧查看数据发现帧类型是1和5,只有这2种。我想知道pps和sps这两张参数在哪儿?如果我的码流中没有这两个参数,暴风是如何播放的?[/quote] ISO_IEC_14496-15
beginning1126 2013-12-13
  • 打赏
  • 举报
回复
引用 10 楼 ShenDuYouLan 的回复:
另外在rfc4566上依然没有发现有交错封包和非交错封包的解释
1、对payload type,96就是h264 2、在rfc4566是定义sdp的,sdp是一种文本协议,用来描述会话层全局信息和视音频相关信息的。 3、对于交织的定义,需要在rfc3984中去找,但是我印象当中,交织模式,很少会被用到
LinuxInEmbedded 2013-12-12
  • 打赏
  • 举报
回复
另外在rfc4566上依然没有发现有交错封包和非交错封包的解释
LinuxInEmbedded 2013-12-12
  • 打赏
  • 举报
回复
刚才大致浏览了一下rfc4566,m=video 9200 RTP/AVP 96 中那个96指payload type,这个payload type怎么来的,规定就指h264?
LinuxInEmbedded 2013-12-11
  • 打赏
  • 举报
回复
有了解的吗??
LinuxInEmbedded 2013-12-11
  • 打赏
  • 举报
回复
谢楼上!!!!!~~~~
beginning1126 2013-12-11
  • 打赏
  • 举报
回复
rtp分装264水深得很,一句话两句话很难说清楚,协议如下 rtp h264:rfc3984 sdp:rfc4566
LinuxInEmbedded 2013-12-11
  • 打赏
  • 举报
回复
ortp库采用rtp_session_send_with_ts函数发送一帧数据,是否应该自己去掉帧起始字节 00 00 00 01部分?如果一帧数据超过了mtu,是自己动手封包还是由库来自动进行的?
LinuxInEmbedded 2013-12-11
  • 打赏
  • 举报
回复
sdp中 packetization-mode: 表示支持的封包模式. 当 packetization-mode 的值为 0 时或不存在时, 必须使用单一 NALU 单元模式. 当 packetization-mode 的值为 1 时必须使用非交错(non-interleaved)封包模式. 当 packetization-mode 的值为 2 时必须使用交错(interleaved)封包模式. 请问3项分布是什么意思? 0:每个rtp包只能是一帧264编码 1:这个非交错是什么意思?交错呢? 有了解的吗,麻烦指点下?
嵌入式乌托邦 2013-12-11
  • 打赏
  • 举报
回复
帮顶,同问?
LinuxInEmbedded 2013-12-10
  • 打赏
  • 举报
回复
我改过payload以后发生到vlc,提示如下: SDP required: A description in SDP format is required to receive the RTP stream. Note that rtp:// URIs cannot work with dynamic RTP payload format (2). 又遇到类似情况的吗?麻烦指点一下
LinuxInEmbedded 2013-12-10
  • 打赏
  • 举报
回复
sdp是什么?协议还是文件?由谁来生成?如何生成?

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧