移动端视频编辑开发思路

2020-12-07 16:20:28 +08:00
 fyvincentteam

目前在开发视频编辑功能,想法是用 ffmpeg 解码得到所有的帧,处理帧图像最后重新打包。 想问下有开发过的大大能分享下你们的做法吗

9038 次点击
所在节点    Android
12 条回复
rust
2020-12-07 17:42:50 +08:00
为什么要解码所有帧?
用户要编辑哪一片段,你再去解码那些帧啊.然后处理完再拼接回去.
记得用 MediaCodec 的硬件加速来
hello2060
2020-12-07 18:12:14 +08:00
@rust 基本没有办法拼接回去的吧。输出就是一个写文件 muxing 的过程,哪怕最简单的文件格式不变,所有没变化的 packet 直接原样重新输出,只编码编辑过的帧我觉得就挺难的。
rust
2020-12-07 18:23:07 +08:00
@hello2060 我的意思是,用户选中视频片段的时候就后台切片,用户编辑过的导出成视频片段,然后按照对应的时间段拼接回去.最终合并成完整的一个视频
renmu123
2020-12-07 18:25:36 +08:00
博客 teahour 有一期请了搞手机端搞这个的,可以去听一下
AX5N
2020-12-07 18:31:05 +08:00
电脑不香吗
gggxxxx
2020-12-07 18:43:26 +08:00
思路是比较靠谱的,只不过不用解码所有帧。一般是预览到哪一针才解码那一针,跟播放视频是一样的。
所谓编辑就是记录修改参数,preview 和 export 的时候直接套用
hello2060
2020-12-07 18:48:47 +08:00
@rust 难度应该就在拼接这一块可能,时间戳不会是问题,哪怕稍微有点不准确。因为视频文件不仅仅是音视频帧,还有 metadata, 比如 mp4 就有一个 moov 里面具体指明了每一帧在文件中的位置大小时间长度,当然这些都是 muxer 输出的,而且一个文件同时有原编码器产生的帧和新编码器产生的帧,不知道是否能够无缝合作。

我记得我们当时 h.264 的帧有 NAL 有两种编码方式,你必须读出原来的格式,强制新编码器也用这种格式。反正具体的细节挺多的。而且你看这只是一种视频编码,不同的视频编码方法可能会有不同的问题。

不过我我是做库的,具体没做过视频编辑啦。
rust
2020-12-07 18:54:46 +08:00
@hello2060 我们在服务器上面用 FFMpeg 随意切片,等用户编辑好了之后再拼接回来的.好像也没有出现问题
Lemeng
2020-12-07 21:53:57 +08:00
所有的桢啊
small3flower
2020-12-08 11:35:04 +08:00
@renmu123 这个博客很赞,我翻了一遍标题没找到有关于移动端视频的,麻烦大佬抽空找下看看是哪一期呢
renmu123
2020-12-08 11:45:21 +08:00
@small3flower #10 我记错了,是另一个博客《 ggtalk 》里面的一期《聊聊音视频技术》
small3flower
2020-12-08 14:12:14 +08:00
@renmu123 哦哦,好的,这个我听过了,谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/732984

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX