【ffmpeg 开发艺术】
文章平均质量分 95
无名之辈FTER
不是因为看到希望才坚持,而是坚持了才能看到希望!
展开
-
Android直播开发之旅(18):FFmpeg中滤镜(filter)的工作原理
文章目录1. 什么是滤镜1.1 简单滤镜(滤镜链)1.2 复杂滤镜(滤镜图)2. 滤镜API介绍与使用2.1 滤镜API介绍2.1.1 结构体2.1.2 功能函数2.2 滤镜API的使用2.2.1 配置滤镜图2.2.2 使用滤镜图1. 什么是滤镜 滤镜(filter)是指将未经过处理的原始音频帧(如PCM)或视频帧(如YUV、RGB)经过滤镜器处理后,得到具体“特殊效果”的音频帧或视频帧,比...原创 2019-11-21 14:54:36 · 3359 阅读 · 1 评论 -
Android直播开发之旅(17):使用FFmpeg提取MP4中的H264和AAC
最近在开发中遇到了一个问题,即无法提取到MP4中H264流的关键帧进行处理,且保存到本地的AAC音频也无法正常播放。经过调试分析发现,这是由于解封装MP4得到的H264和AAC是ES流,它们缺失解码时必要的起始码/SPS/PPS和adts头。虽说在Android直播开发之旅(3):AAC编码格式分析与MP4文件封装一文中对MP4有过简单的介绍,但为了搞清楚这个问题的来龙去脉,本文的开始还是有必要...原创 2019-10-21 15:55:44 · 4900 阅读 · 4 评论 -
Android直播开发之旅(16):使用FFmpeg保存网络流到本地文件
在Amdroid直播开发之旅(5):详解ffmpeg编译与在Android平台上的移植和Android直播开发之旅(12):初探FFmpeg开源框架文章中,我们分别探讨了FFmpeg的编译移植、FFmpeg框架和相关重要结构体。本文就在此基础上,将详细阐述FFmpeg的裁剪移植,以便剔除不必要的功能,达到为APK"瘦身"的效果,同时,写了一个将网络流保存到本地文件的实战案例,以加深对FFmpeg...原创 2019-09-27 15:27:19 · 5015 阅读 · 13 评论 -
Android直播开发之旅(15):libjpeg库的编译移植与使用
1. libjpeg介绍 libJPEG库是一款功能强大的JPEG图像处理开源库,它支持将图像数据压缩编码为JPEG格式和对原有的JPEG图像解压缩,Android系统底层处理图片压缩就是用得libJPEG库。但有一点需要注意的是,为了适配低版本的Android手机,Android系统在内部的压缩算法并没有采用普通的哈夫曼(Huffman)算法,因为哈夫曼算法比较占CPU,从而导致Android...原创 2019-08-28 17:41:07 · 3087 阅读 · 3 评论 -
Android直播开发之旅(14):使用RC4算法加解密音视频流
1. RC4算法简介与原理 RC4加密算法是Ron Rivest在1987年设计出的密钥长度可变的加密算法族,它是一种面向字节操作的对称加密算法,且属于对称密码算法中的序列密码(streamcipher,也称为流密码)。RC4算法采用的是输出反馈(OFB,oupt-feedback)工作方式,该方式允许用一个短的密钥产生一个相对较长的密钥序列,并且它与分块加密算法(CBC,cipherblock...原创 2019-08-26 11:40:45 · 2794 阅读 · 0 评论 -
Android直播开发之旅(13):使用FFmpeg+OpenSL ES播放PCM音频
在Android直播开发之旅(12):初探FFmpeg开源框架一文中,我们详细介绍了FFmpeg框架的架构、音视频相关术语以及重要的结构体。为了能够对这些重要的结构体有个深入的理解,本文将在此基础上,利用FFmpeg解析rtsp数据流以获取AAC音频数据,再对AAC进行解码为PCM,然后结合OpenSL ES库本地实时播放解码得到的PCM音频数据。1. OpenSL ES原理 OpenSL...原创 2018-12-25 22:37:05 · 3428 阅读 · 2 评论 -
Android直播开发之旅(12):初探FFmpeg开源框架
1. FFmpeg介绍与裁剪1.1 FFmpeg简介 FFmpeg(Fast forword mpeg,音视频转换器)是一个开源免费跨平台的视频和音频流方案,它提供了录制/音视频编解码、转换以及流化音视频的完整解决方案。ffmpeg4.0.2源码目录结构如下:目录说明:FFmpeg |—compat 该目录存放的是兼容文件,以便兼容早期版本 |—doc 说明文档 ...原创 2018-11-08 21:40:26 · 3709 阅读 · 0 评论 -
Android直播开发之旅(11):从内存分布的角度再谈YUV颜色空间
最近在研究各种视频采集设备的视频传输,在这过程中也遇到了各种问题,尤其是由于设备之间的差异,导致YUV转换不匹配出现了蓝屏或花屏。虽然在 1. YUV存储格式与采样1.1 YUV存储格式packed格式:YUV分量存放在同一个数组; planner格式:使用三个数组分别存放Y、U、V分量;1.2 YUV采样方式YUV444 YUV422 YUV4202...原创 2018-08-24 22:36:49 · 2171 阅读 · 0 评论 -
Android直播开发之旅(10):AndroidUSBCamera,UVCCamera开发通用库(支持开启多路摄像头)
AndroidUSBCamera基于[saki4510t/UVCCamera](https://github.com/saki4510t/UVCCamera)开发,该项目对USB Camera(UVC设备)的使用和视频数据采集进行了高度封装,能够帮助开发者通过几个简单的API实现USB Camera设备的检测、连接、预览和音视频数据采集,最重要的是手机无需root,只需支持otg功能即可驱.........原创 2017-10-23 22:22:09 · 83598 阅读 · 852 评论 -
Android直播开发之旅(8):Android硬编解码接口MediaCodec原理剖析
转载请声明出处:http://blog.csdn.net/AndrExpert/article/details/79578149 在“AAC编码格式分析与MP4文件封装(MediaCodec+MediaMuxer)”一文中我们简单介绍了Android硬编解码接口MediaCodec的使用,本文将在该基础上对MediaCodec的基本工作原理和编解码过程进行剖析。1. MediaCod...原创 2018-03-16 10:53:51 · 7239 阅读 · 0 评论 -
Android直播开发之旅(9):OkCamera,Android 相机应用开发通用库
OkCamera,Android 相机应用开发通用库转载请声明出处:http://blog.csdn.net/andrexpert/article/details/79302576 明天就可以回家过年了,有点小激动,于是乎赶紧写篇文章压压惊!本文主要介绍最近写的一个Camera开发通用库-OkCamera ,OkCamera库是我另外一个开源项目(AndroidFastD...原创 2018-02-10 00:25:36 · 3555 阅读 · 2 评论 -
Android直播开发之旅(1):视频直播YUV颜色格式完全解析
视频直播YUV颜色格式完全解析 --解决MediaCodec与Camera颜色空间不匹配导致的花屏、叠影等问题 作者: 蒋东国 时间: 2017年4月5日 星期三 ...原创 2017-04-05 18:02:26 · 9429 阅读 · 12 评论 -
Android直播开发之旅(3):AAC编码格式分析与MP4文件封装(MediaCodec+MediaMuxer)
Android直播开发之旅(3):AAC编码格式分析与MP4文件封装(MediaCodec+MediaMuxer)(码字不易,转载请声明出处:http://blog.csdn.net/andrexpert/article/details/72523408) 1. AAC编码格式分析(1) AAC简介 高级音频编码(AdvancedAudio Coding,AAC)一种...原创 2017-05-19 17:42:35 · 11536 阅读 · 62 评论 -
Android直播开发之旅(4):MP3编码格式分析与lame库编译封装
转载请声明出处:http://blog.csdn.net/andrexpert/article/77683776一、Mp3编码格式分析 MP3,全称MPEG Audio Layer3,是一种高效的计算机音频编码方案,它以较大的压缩比(1:10至1:12)将音频文件转换成较小的扩展名为.mp3的文件,且能基本保持原文件的音质。假如有一个4分钟的CD音质的WAV音频,其音频参数为44...原创 2017-08-29 17:59:04 · 4771 阅读 · 0 评论 -
Android直播开发之旅(7):Android视频直播核心技术(架构)详解
(转载请声明出处:http://blog.csdn.net/andrexpert/article/details/76919535)一、直播架构解析 目前主流的直播架构中主要有两种方案,即流媒体转发、P2P。流媒体转发,是一种在视频直播中以流的方式将连续的音、视频数据经编码压缩后传输到流媒体服务器,用户实时从服务器获取流媒体资源,而不必要等待整个文件下载文件完毕的C/S架构视频直播...原创 2017-08-08 17:35:25 · 10823 阅读 · 0 评论 -
Android直播开发之旅(6):详解ffmpeg命令在Android平台上的使用
(码字不易,转载请声明出处:http://blog.csdn.net/andrexpert/article/details/74015671) 上一篇文章讲解如何在linux系统环境下编译so共享库,并将其移植到Android平台上使用。基于此,本文将着重讲解如果通过移植main函数,使Android平台支持直接使用ffmpeg命令实现对音视频的处理,就像PC端一样直接、方便。一、移...原创 2017-06-30 23:06:48 · 5004 阅读 · 1 评论 -
Amdroid直播开发之旅(5):详解ffmpeg编译与在Android平台上的移植
(码字不易,转载请声明出处:http://blog.csdn.net/andrexpert/article/details/73823740)一、ffmpeg在linux环境下的编译1. 编译环境(1) VirtualBox:VirtualBox_5.1.22.15126.exe(2) Ubuntu:ubuntu-14.04.5-desktop-amd64.iso(3) NDK:a...原创 2017-06-27 21:40:40 · 5984 阅读 · 3 评论 -
Android直播开发之旅(2):深度解析H.264编码原理
(码字不易,转载请申明出处:http://blog.csdn.net/andrexpert/article/details/71774230 )前 言 在学习H.264编码之前,我们先了解一下在视频直播的过程中,如果Camera采集的YUV图像不做任何处理进行传输,那么每秒钟需要传输的数据量是多少?Camera采集的YUV图像通常为YUV420,根据YUV420的采样结构,Y...原创 2017-05-13 00:10:12 · 6778 阅读 · 0 评论