最近在研究FFmpeg编解码

好几年没上CNBLOGS了

 

               最近在研究FFmpeg编解码,一个人研究感到很寂寞,所以想通过博客来和大家分享和交流,呵呵。

 

最近研究的主题是: ANDROID手机同屏技术:

 

                          需要用到ANDROID截屏,然后通过FFmpeg将BMP编码成H264,然后通过RTP协议发送出去。接收端为手机,要求延时小,清晰流畅,并且手机还可以反控ANDROID主机。

  

                           我的想法是先在VS2010上将整个原理通路打通,先在PC上调试和DEMO,然后再移植。直接进行ANDROID的NDK编程,那个开发效率和调试效率太低啦。

 

                           目前的进展:基于VS2010

                                            可以连续截屏,并且还可以将截屏的N张BMP图片通过FFmpeg编码成H264. 

                                             还需解决的问题:

                1. 内存泄漏。(头大,C++程序员的永久之痛!)

                2.发现FFmpeg的编码效率不太高,编码慢,只能基本满足15帧每秒。如果移植到ARM平台,由于CPU资源有限,恐怕效率更低。如果实在不能解决,到时候再考虑利用ARM的H264硬件H264编码.

                                             3. 现在是截屏的BMP分辨率是1920*1080,编码产生的H264文件的分辨率也是1920*1080,想缩放成1280*720,这样通过RTP传送时,占用带宽少。

                                             这个问题通过SWC_SCALE函数应该好解决。

                           

                          目前流程:

                                          截屏,保存为若干个BMP文件---->RGB转YUV420P-----FFmpeg编码-------->H264文件。

 

 

 

 

                               

posted @ 2016-07-08 11:22  Jade  阅读(1164)  评论(0编辑  收藏  举报