kennybluezy

kennybluezy

0个粉丝

16

问答

0

专栏

0

资料

kennybluezy  发布于  2016-04-07 15:28:05
采纳率 0%
16个问答
2839

h264文件修改后的保存问题

 
       各位好,我现在需要实现一个视频编辑的功能,在解码播放h264文件时,在某一帧上叠加图片或文字,并保存到原有视频文件中。现在通过Region已经实现了图片及文字的叠加,并且通过将此帧图像压缩为jpg图片确认叠加是正确的。现在的问题是如何将其保存到原有视频文件中?
       目前我的想法是找出原视频文件中此帧图像的前一个I帧和后一个I帧,将此帧图像编码为I帧,并编码出后续的P帧,用这一段I帧和P帧替换原文件中这一段视频。不知有谁做过类似的功能吗?能否提供相关建议?先行谢过!
我来回答
回答6个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-04-07 15:51:24
认可0
原理上讲也不保险

但是一般应用, 只要把要改变的第一帧编成I帧,并把这一帧到下一个I帧前的P帧重新编码即可,并不用回溯到上一个I帧, 尤其是没有B帧的情况


kennybluezy

0个粉丝

16

问答

0

专栏

0

资料

kennybluezy 2016-04-07 16:09:19
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=28072&ptid=10899]zhuangweiye 发表于 2016-4-7 15:51[/url]
原理上讲也不保险

但是一般应用, 只要把要改变的第一帧编成I帧,并把这一帧到下一个I帧前的P帧重新编码即 ...[/quote]

非常感谢您的热心回复,之前的几个帖子也是您在热心帮助。
我的意思就是将这帧编码为I帧,并将随后的若干帧(比如25帧或30帧)编码为P帧。用这些帧序列替换原视频帧所处的两个I帧之间形成的序列。回溯到上一个I帧是为了确定这个序列区间。
因为我的理解是h264中I帧是独立的,P帧和B帧依赖I帧进行编码,所以想到的是这个办法。不知工程上是否有更成熟可靠的方法? 因为之前没有深入了解过视频处理的相关知识,故目前只想到这种方法。
再次感谢!

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-04-07 16:48:21
认可0
H.264可以有16个参考帧, 意味着最多可以有16个解码帧会用于解码, 如果重编码的帧正好是参考帧,而且这些参考帧会被前后的P/B帧使用,那么要把所有相关的帧都重新编码才可以

但是, 一般实时编码的情况(尤其只有是I/P的情况), 可以简单认为来一个I帧后,后面的解码就和前面的帧无关了
P帧只跟该帧的参考帧相关, 通常只有一个,并不一定是前面一帧, B帧的参考帧通常为2个, P/B帧的参考帧一般都在两个I帧之间

参考帧越多,编码运算量越大

kennybluezy

0个粉丝

16

问答

0

专栏

0

资料

kennybluezy 2016-04-07 21:04:02
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=28078&ptid=10899]zhuangweiye 发表于 2016-4-7 16:48[/url]
H.264可以有16个参考帧, 意味着最多可以有16个解码帧会用于解码, 如果重编码的帧正好是参考帧,而且这些参考 ...[/quote]

OK,您的意思是因为在编码某帧的时候可能不止参考前面一个参考帧,所以只回溯到上一个I帧是不保险的,但一般情况下是问题不大的。不知这样理解是否有误?
再次感谢您的热心帮助,我目前还是按照想到的这种方法进行处理,即视频编码后替换原视频文件中的部分内容。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-04-08 08:12:49
认可0
意思是原理上只考虑两个I帧之间不一定保险, 因为下一个I帧后面的帧有可能也会用到前面的解码帧做为参考帧, 而这些帧解出来后还可能是更后面的帧的参考帧

实际应用, 只考虑当前帧(不用回到上一个I帧)到下一个I帧的前一帧就可以对付大部分码流了,尤其是只有I/P的情况,

当然楼主的方法也可以

kennybluezy

0个粉丝

16

问答

0

专栏

0

资料

kennybluezy 2016-04-08 09:19:24
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=28091&ptid=10899]zhuangweiye 发表于 2016-4-8 08:12[/url]
意思是原理上只考虑两个I帧之间不一定保险, 因为下一个I帧后面的帧有可能也会用到前面的解码帧做为参考帧,  ...[/quote]

明白了,非常感谢您的热心帮助!
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区