我正在尝试在Android 4.2.2
上构建视频录制系统,我已经完成了使用OMX
的编码部分。现在我正在处理Muxer部分,因为如果我使用FFMpeg
,视频的代码流可能会有所不同,所以我希望使用与原始系统完全相同的Muxer工具。
所以我想提取StagefrightRecorder
的Muxer部分,将其编译成.so文件,然后在我的应用程序中通过JNI
调用它。但是StagefrightRecorder
中有很多东西,我很困惑。
这种方式有用吗?我可以只提取与MPEG4Writer相关的代码吗?任何人都可以给我任何指示吗? 谢谢!
答案 0 :(得分:1)
如果要在框架的上下文中进行编译,则只需包含相关的头文件并直接创建MPEG4Writer
对象即可。一个非常好的示例是命令行实用程序recordVideo
,可以从this file中看到。
如果您希望编写单独的应用程序,则需要链接libstagefright.so
并包含相关的头文件及其路径。
注意:如果您希望使用标准MPEG4Writer
,那么它的来源即作为编码器的MPEG4Writer
的来源应建模为{{1 }}。作者通过MediaSource
方法提取metadata
和实际比特流,因此,建议对编码器使用标准内置对象,如read
或OMXCodec