gpt4 book ai didi

java - 使用 FFMPEG 编码流后如何将 H.263 打包为 RTP 数据包

转载 作者:太空宇宙 更新时间:2023-11-04 07:23:47 25 4
gpt4 key购买 nike

我有一个基于 Java 的 VoIP 软电话 (jPhoneLite),支持 H.263+ 和 H.264。但目前H.263(RFC2190)还不完整。根据 RFC,数据必须在 MB(宏 block ?)边界处分割,但我不知道如何找到它们。如果您查看函数 ff_rtp_send_h263_rfc2190() 中的 FFMPEG 源/libavformat/rtpenc_h263_rfc2190.c,您可以看到 mb 边界信息以某种方式从编码器传递到其分包器。我使用 ffmpeg 将视频编码为 H263 数据,但我不知道 ffmpeg 是否提供了获取这些 MB 指针/偏移量的函数。

https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/rtpenc_h263_rfc2190.c

http://jphonelite.sourceforge.net

有什么帮助吗?谢谢。

最佳答案

H.26x比特流被分层,一般来说,每一层都以独特的位序列开始。

  1. 图片/帧层:以PSC - 图片起始码开头。包括 GOV 列表 - 区 block 组。
  2. GOV 可以选择以代码开头。包括 MB 宏 block 列表
  3. MB - 以 header 开始,以代码结束。

您可以在以下部分阅读相关内容:rfc21903.2 GOB 编号

查看 ffmpeg 代码后,通过以下方式搜索起始代码:ff_h263_find_resync_marker_reverse() in rtpenc_h263.c .

关于java - 使用 FFMPEG 编码流后如何将 H.263 打包为 RTP 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18883836/

25 4 0
文章推荐: c - 连接 5 游戏的位板?
文章推荐: html - 单元格中
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com