好几年没上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文件。

最近在研究FFmpeg编解码的更多相关文章

  1. ffmpeg 编解码详细过程

    ffmpeg编解码详细过程     bobbypollo 转:ffmpeg编解码详细过程 原文地址:ffmpeg编解码详细过程(转)作者:心在飞翔原文出处: http://www.360doc.com ...

  2. FFmpeg编解码处理4-音频编码

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584948.html FFmpeg编解码处理系列笔记: [0]. FFmpeg时间戳详 ...

  3. FFmpeg编解码处理3-视频编码

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584937.html FFmpeg编解码处理系列笔记: [0]. FFmpeg时间戳详 ...

  4. FFmpeg编解码处理2-编解码API详解

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584925.html FFmpeg编解码处理系列笔记: [0]. FFmpeg时间戳详 ...

  5. FFmpeg编解码处理1-转码全流程简介

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584901.html FFmpeg编解码处理系列笔记: [0]. FFmpeg时间戳详 ...

  6. ffmpeg编解码音频AAC

    本次项目的需求:手机端和PC端共享同一个音视频网络源. 所以编解码需要满足手机上编码和解码原来PC端的音视频流. 这里先封装安卓手机端音频的编解码. 编译工作依然是在linux下 ubuntu 12. ...

  7. ffmpeg编解码视频导致噪声增大的一种解决方法

    一.前言 ffmpeg在视音频编解码领域算是一个比较成熟的解决方案了.公司的一款视频编辑软件正是基于ffmpeg做了二次封装,并在此基础上进行音视频的编解码处理.然而,在观察编码后的视频质量时,发现图 ...

  8. FFmpeg 学习(五):FFmpeg 编解码 API 分析

    在上一篇文章 FFmpeg学习(四):FFmpeg API 介绍与通用 API 分析 中,我们简单的讲解了一下FFmpeg 的API基本概念,并分析了一下通用API,本文我们将分析 FFmpeg 在编 ...

  9. UWP笔记-使用FFmpeg编解码

    在开发UWP媒体应用的时候,使用的MediaElement可以支持主流的格式,不过还是有些格式本地编解码器是不支持的,如.flv..rmvb等,这里讲到的是第三方开源库FFmpeg,可以直接播放更多的 ...

随机推荐

  1. ajax传递的参数服务器端接受不到的原因

    最常见的就是组织的json数据格式有问题,尝试把单引号改为双引号试试,如下: $datares = {"uname":$uname.val(),"phone": ...

  2. ARM Linux 驱动Input子系统之按键驱动测试

    上一篇已经谈过,在现内核的中引入设备树之后对于内核驱动的编写,主要集中在硬件接口的配置上了即xxxx.dts文件的编写. 在自己的开发板上移植按键驱动: 1.根据开发板的原理图 确定按键的硬件接口为: ...

  3. 基于ONVIF协议的摄像头开发总结

    <什么是ONVIF协议>     2008年5月,由安讯士(AXIS)联合博世(BOSCH)及索尼(SONY)公司三方宣布携手共同成立一个国际开放型网络视频产品标准网络接口开发论坛,取名为 ...

  4. 模拟Djangoweb框架

    一.需求 1.访问127.0.0.1/login,访问到login页面 2.登陆成功,跳转到登陆后的页面 3.登陆失败,跳转到登陆失败的页面 4.用户账号密码验证 二.目录结构 三.代码 day01. ...

  5. 【BZOJ 1415】 1415: [Noi2005]聪聪和可可 (bfs+记忆化搜索+期望)

    1415: [Noi2005]聪聪和可可 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1640  Solved: 962 Description I ...

  6. Git 简易使用指南及补充

    Git最简易的使用指南 助你开始使用 git 的简易指南,木有高深内容,;) 安装 下载 git OSX 版 下载 git Windows 版 下载 git Linux 版 创建新仓库 创建新文件夹, ...

  7. 2018-2019-20172329 《Java软件结构与数据结构》第三周学习总结

    2018-2019-20172329 <Java软件结构与数据结构>第三周学习总结 教材学习内容总结 <Java软件结构与数据结构>第五章-队列 一.概述 1.队列是什么? 队 ...

  8. PHP--SPL扩展学习笔记

    一. SPL是干嘛的 SPL是用于解决典型问题(standard problems)的一组接口与类的集合. 数据结构: .实现双向列表 SplDoublyLinkedList implements I ...

  9. BZOJ 1022 [SHOI2008]小约翰的游戏John AntiNim游戏

    1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1475  Solved: 932[Submit][ ...

  10. BrowserRouter和HashRouter的区别

    BrowserRouter: 原理是H5的history API,IE9及以下不兼容,需要由web server支持,在web client这边window.location.pathname被rea ...