ruixiang

ruixiang

1个粉丝

22

问答

0

专栏

1

资料

ruixiang  发布于  2017-05-20 11:09:51
采纳率 0%
22个问答
3044

解码器如何处理断帧,错帧,不连续帧?

 
简单的看了下3536的解码例子程序,发现其调用解码函数时是读取文件的方式,文件是静态的可以读取的大小NAL都是可以确定的,可以保证扔到解码通道的是每一个完整的编码帧。

假如在网络或是无线的环境中,编码的数据有断帧,错帧,甚至是不连续帧,解码该如何处理?

举个例子,假如编码端采集视频进行H264编码后不直接发送,而是放入一个缓冲区中,每有超过2000字节的数据,便扔出2000字节的数据。

现在有两个问题:
1,假如这2000字节没有错误,我能直接扔到解码器解码吗?这2000字节肯定不是一个完整的编码,可能不到1个,也可能超过1个,且头部可能在中间位置。
2,假如第1条可以实现,2000字节的编码数据可以直接解码。那假如这2000字节在无线环境中产生了部分字节的错误,扔到解码器可以吗?

对解码器处理断帧,错帧,不连续帧的问题很苦恼,但目前项目需要用到。还请了解的朋友和老师指点。
谢谢!
我来回答
回答3个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-05-22 09:13:17
认可0
建议收完一帧再送解码器比较好

如果出现数据出错, 最好直接丢掉, 等下一个I帧, 虽然说解码器有容错能力,但不能保证不出错,而且错误的码流送到解码器,出来的图很可能是花屏, 送了意义不是很大

ruixiang

1个粉丝

22

问答

0

专栏

1

资料

ruixiang 2017-05-25 10:22:16
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=50102&ptid=15249]zhuangweiye 发表于 2017-5-22 09:13[/url]
建议收完一帧再送解码器比较好

如果出现数据出错, 最好直接丢掉, 等下一个I帧, 虽然说解码器有容错能力, ...[/quote]

感谢您的指点。
因为我们无线传输是定长的,并不能保证每次发送和接收正好是一个视频编码的一帧,所以我只能流式缓存,然后定长发送。接收端如果去做找帧查错恢复等工作会比较麻烦,何况还有误码等。
以前的项目用过VLC还有TI的DM365解码,是可以直接扔的。省却很多麻烦的工作,就是不知道海思是不是也支持直接扔。
花屏能接受,只要解码器可以处理断帧错帧不连续帧即可。
谢谢!

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-05-25 11:44:03
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=50337&ptid=15249]ruixiang 发表于 2017-5-25 10:22[/url]
感谢您的指点。
因为我们无线传输是定长的,并不能保证每次发送和接收正好是一个视频编码的一帧,所以我 ...[/quote]

个人感觉这个根本不是问题,只不过是楼主不想做网传的错误处理而已,缓存并不一定要让解码器去做,哪里都能做,还是在网传哪里比较好,组不了完整的帧就不送,直接丢也不用恢复,让解码器负担轻一点
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区