目前我正在尝试将多个视频文件连接在一起,最简单的方法是使用MP4Parser
。但是,MP4Parser
必须使视频具有相同的尺寸和帧数,因为它只是操纵容器。
fadden已经表示MP4支持可变帧率视频,MediaCodec
可以生成它们,因此我正在考虑使用MediaCodec
套件来完成此任务。
假设我有3个要连接的视频,我想有3个MediaExtractors
和MediaCodec
解码器实例,每个视频一个,以及一个MediaCodec
编码器解码后的缓冲区进入最终的视频文件。
提取器和解码器将一个接一个地运行,它们将被送入同一个编码器。但是,我担心编码器的EOS信号标志。
我可以保持所述信号标志关闭,直到第三个解码器完成?我是否还应该使用循环缓冲区来完成这项任务?
答案 0 :(得分:0)
是的,您可以随时发送EOS信号标志,只要您之后不向编码器发送新帧即可。实际上,如果您仍想提供更多视频帧,则不应发送EOS标志
您可能想知道的事情很少:
在释放第一个解码器之后配置第二个解码器更安全, 某些设备可能不允许您分配多个解码器,尤其是在解码高分辨率视频时。
您应该向第二和第三个视频的演示时间添加偏见(显然)
是的,MediaCodec
支持可变帧率,但我不确定它是否支持变量维度。您可能需要自己进行一些调整大小或裁剪(通过openGL渲染)