
音视频开发
文章平均质量分 74
HugoforAndroid
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ffprobe输入与输出信息详解
ffprobe是ffmpeg提供的三大工具之一,用来查看音视频文件的各种信息,比如:封装格式、音频/视频流信息、数据包信息等。ffprobe的源码是ffprobe.c,开发过程中如果想获取ffprobe查看的信息,可以通过分析源码,获得对应字段。 本文主要介绍format、stream、Packet和Frame信息,包含每个字段的说明以及对应的ffmpeg字段。输出每个流的具体信息(以JSON格式)ffprobe -v quiet -print_format json -show_format -sh原创 2020-06-04 17:30:36 · 5274 阅读 · 1 评论 -
音视频学习路线规划
转载自 http://www.cnblogs.com/tocy/p/zyj-media-study-route.html参考https://en.wikipedia.org/wiki/Template:Compression_formats,结合本人对音视频处理接触到的内容,后续学习可从以下几个主体入手:AudioMP3mp4a/aacwavAC3/DRA/Re转载 2017-05-26 10:54:03 · 1440 阅读 · 0 评论 -
Android音频编解码和混音
认识数字音频:在实现之前,我们先来了解一下数字音频的有关属性。采样频率(Sample Rate):每秒采集声音的数量,它用赫兹(Hz)来表示。(采样率越高越靠近原声音的波形)采样精度(Bit Depth):指记录声音的动态范围,它以位(Bit)为单位。(声音的幅度差)声音通道(Channel):声道数。比如左声道右声道。采样量化后的音频最终是一串数字,声音的大小(幅度)转载 2016-11-28 10:49:24 · 3332 阅读 · 2 评论 -
Android多媒体框架的核心 OpenCore 解析
1. OpenCore介绍OpenCore是android多媒体框架的核心,所有Android平台的音视频采集,播放的操作都是通过它来实现。通过Open Core程序员可以方便快速的开发出想要的多媒体应用程序,例如:音视频的采集,回放,视频会议,实时的流媒体播放等等应用。2. OpenCore代码结构OpenCore的代码在Android代码的External/Opencore目录中。这原创 2017-07-04 16:54:20 · 1478 阅读 · 2 评论 -
MediaPlayer
*MediaPlayer的继承关系: public class MediaPlayer extends Object implements VolumeAutomationjava.lang.Object ↳ android.media.MediaPlayerMediaPlayer class can be used to control playback of audio/vi翻译 2017-07-04 17:39:38 · 547 阅读 · 0 评论 -
音视频中GOP、 PTS 和 DTS
视频视频的播放过程可以简单理解为一帧一帧的画面按照时间顺序呈现出来的过程,就像在一个本子的每一页画上画,然后快速翻动的感觉。但是在实际应用中,并不是每一帧都是完整的画面,因为如果每一帧画面都是完整的图片,那么一个视频的体积就会很大,这样对于网络传输或者视频数据存储来说成本太高,所以通常会对视频流中的一部分画面进行压缩(编码)处理。由于压缩处理的方式不同,视频中的画面帧就分为了不同的类别...转载 2018-01-25 12:24:06 · 6542 阅读 · 1 评论 -
FFmpeg命令参数解释和功能命令汇总
强大的FFmpeg,能够实现视频采集、视频格式转化、视频截图、视频添加水印、视频切片、视频录制、视频推流、更改音视频参数功能等。平常会直接用到一些主要的功能命令,所以下述先列举功能命令,再整体的列举搜集的命令中的参数的解释说明 功能命令汇总 第一组1.分离视频音频流ffmpeg -i input_file -vcodec copy -转载 2018-02-04 12:45:09 · 5217 阅读 · 1 评论 -
实时音频Audio 3A处理初探
音视频社交应用在近两年呈现飞速增长,随之增长的同样还有中国在线教育市场规模,可以说,实时音视频技术助力众多产业转型升级,并使得视频会议等经典应用场景重获新生。众多的新兴场景与行业借助实时音视频技术实现了更佳丰富炫目高效准确的场景表达与业务落地,同时也进一步促进了实时音视频的技术演进与行业探索。实时音视频正在各个千亿、百亿市场快速发展并逐渐成为基础设施型重要技术。 本篇...原创 2018-11-20 09:06:14 · 15141 阅读 · 0 评论 -
C语言在mac下的编译和调试
C语言在mac下的编译和调试GCC/CLANGgcc/clang -g -O2 -o test test.c -I… -L… -l-g: 输出文件中的调试信息-O: 对输出文件做指令优化-o: 输出文件-I:指定头文件-L:指定库文件位置-l: 指定使用哪个库clang -g -o testfunc testfunc.c ./testfunc 编译过程预编译编译链...原创 2018-11-29 10:12:42 · 2305 阅读 · 0 评论 -
FFmpeg源码分析与实际应用
FFmpeg 下载、目录git clone https://git.ffmpeg.org/ffmpeg.gitlibavcodec: 存放各个encode/decoder模块,用于各种类型的声音/图像的编解码;libavdevice: 用于对输入/输出设备的支持;libavfilter: 滤镜,可用于裁剪视频,添加log等;libformat: ...原创 2018-11-29 10:14:36 · 1619 阅读 · 0 评论 -
SDL基本原理及使用实战
SDLSDL (Simple DirectMedia Layer)由C语言实现的跨平台的媒体开源库多用于开发游戏、模拟器、媒体播放器等多媒体应用领域SDL 编译与安装下载SDL源码解压源码: tar -zvxf SDL2-2.0.9.tar.gz生成 Makefile: configure – prefix=/usr/local安装: sudo make -j 8 &&am...原创 2018-11-29 10:29:04 · 3618 阅读 · 1 评论 -
FFmpeg SDK 开发(一)
FFMpeg 中比较重要的函数以及数据结构如下:1. 数据结构:(1) AVFormatContext此结构包含了一个视频流的格式内容。其中存有了 AVInputFormat(or AVOutputFormat 同一时间 AVFormatContext 内只能存在其中一个),和 AVStream、AVPacket 这几个重要的数据结构以及一些其他的 相关信息,比如 title,author...原创 2019-03-06 11:42:08 · 2429 阅读 · 0 评论 -
FFmpeg SDK 开发(二)
在学习FFmpeg的过程中,特意再去了解了下 FFmpeg 的背景FFmpeg 背景介绍FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。...原创 2019-03-11 17:03:44 · 662 阅读 · 0 评论 -
FFmpeg SDK 开发(三)
这一篇主要对一些编解码过程中会遇到的概念做了解:H.264编码原理I/B/P帧三种帧的说明I帧:帧内编码帧 ,I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)I帧特点:1.它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输;2.解码时仅用I帧的数据就可重构完整图像;3.I帧描述了图像背景和运动主体的详情;4.I帧不...原创 2019-03-12 16:24:15 · 479 阅读 · 0 评论 -
FFmpeg SDK 开发(四)
之前 FFmpeg SDK 开发(一) 列举了FFmpeg 中比较重要的函数以及数据结构,并概念性的介绍了其中一些名词。这边将深入进行到具体的结构内容。FFMPEG中结构体分类FFMPEG中结构体很多。最关键的结构体可以分成以下几类:解协议(http,rtsp,rtmp,mms)AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。U...原创 2019-03-12 22:24:34 · 812 阅读 · 0 评论 -
VideoRenderer源码解析
Video rendering is the process of finalizing a video file from different elements that include edited video files and special effects(fromWhat is Video Rendering?)原创 2017-05-23 18:10:34 · 1221 阅读 · 0 评论 -
Android OpenGL
首先收藏这个 OpenGL of 优快云建立OpenGL ES环境 为了能在你的Android应用中使用OpenGLES绘画,你必须创建一个view作为容器。而最直接的方式就是从GLSurfaceView和GLSurfaceView.Renderer分别派生一个类。GLSurfaceView作为OpenGL绘制所在的容器,而实际的绘图动作都是在GLSurfaceView.Render转载 2017-05-11 13:11:27 · 598 阅读 · 0 评论 -
rtmp发送H264及aac的音视频
作者:lcjatfRTMP推送的音视频流的封装形式和FLV格式相似,由此可知,向FMS推送H264和AAC直播流,需要首先发送"AVC sequence header"和"AAC sequence header",这两项数据包含的是重要的编码信息,没有它们,解码器将无法解码。 AVC sequence header就是AVCDecoderConfigurationRecord转载 2016-09-13 19:44:53 · 1375 阅读 · 0 评论 -
音频编码和解码原理
作者:yuyin86视频流中的DTS/PTS到底是什么?DTS(解码时间戳)和PTS(显示时间戳)分别是解码器进行解码和显示帧时相对于SCR(系统参考)的时间戳。SCR可以理解为解码器应该开始从磁盘读取数据时的时间。mpeg文件中的每一个包都有一个SCR时间戳并且这个时间戳就是读取这个数据包时的系统时间。通常情况下,解码器会在它开始读取mpeg流时启动系统时钟(系统时钟的初始值转载 2016-09-13 19:49:16 · 17832 阅读 · 0 评论 -
视频解码基础知识
作者:suwenqiang2011一 基础篇1.1 图形、图像和视频图形(graphic):和图像与视频不同,有一种说法是图形就是自然界的客观世界不存在的图案。对于计算机中的图形研究,有专门的计算机图形学,主要的研究对象是点、线、面等抽象事物。目前所谓的计算机显卡3D技术支持,主要就是图形技术相关的范畴。关于图形方面的开发,好象OpenGL是其中比较有名的3D图形库。转载 2016-09-13 19:53:31 · 5448 阅读 · 1 评论 -
视频编解码学习之一:理论基础
第1章介绍1. 为什么要进行视频压缩?未经压缩的数字视频的数据量巨大存储困难一张DVD只能存储几秒钟的未压缩数字视频。传输困难1兆的带宽传输一秒的数字电视视频需要大约4分钟。2. 为什么可以压缩去除冗余信息空间冗余:图像相邻像素之间有较强的相关性时间冗余:视频序列的相邻图像之间内容相似编码冗余:不同像素值出现的概率转载 2016-09-13 19:58:49 · 957 阅读 · 2 评论 -
视频编解码学习之二:编解码框架
第四章 视频编码基础1. 压缩码流语法:码流中各个元素的位置关系01001001…图像编码类型(01),宏块类型(00),编码系数1001等语义:每个语法元素所表达的意义。例如:图像编码类型2. 编码层次序列(Sequence)图像组(Group of Pictures,GOP)图像(Picture)条带(Slice)宏块(M转载 2016-09-13 20:04:18 · 1127 阅读 · 0 评论 -
视频编解码学习之三:变换,量化与熵编码
第6章 变换编码1. 变换编码变换编码的目的去除空间信号的相关性将空间信号的能力集中到频域的一小部分低频系数上能量小的系数可通过量化去除,而不会严重影响重构图像的质量块变换和全局变换块变换:离散余弦变换(Discrete Cosine Transform,DCT),4x4,8x8,16x16全局变换:小波变换(Wavelet)变换的能量集中特性转载 2016-09-13 20:05:22 · 3804 阅读 · 0 评论 -
视频编解码学习之四:视频处理及编码标准
第10章 视频处理1.视频处理在视频压缩前后,对视频图像质量增强的操作视频编解码系统输出的图像主观质量不仅与压缩算法的性能有关,还受视频处理的影响压缩之前对视频的处理称作预处理(Pre-processing)压缩之后对视频的处理称作后处理(Post-processing)2. 预处理预处理的目的为了减少原图像受到的损害,保持原图像的重要特征,转载 2016-09-13 20:06:07 · 3166 阅读 · 1 评论 -
视频编解码学习之五:差错控制及传输
第12章 差错控制1. 视频传输错误视频传输的信道有可能是不可靠的无线信道Internet传输错误随机的比特错误比特反置、比特插入、比特丢失突发错误(Bursty Error)数据包丢失局域网数据包冲突延迟缓冲区溢出噪声干扰2. 差错控制的目的目的克服由于信道传输错误转载 2016-09-13 20:06:56 · 4525 阅读 · 0 评论 -
Android音频开发:基础知识
转载自 http://ticktick.blog.51cto.com/823160/1748506本文主要以问答的形式,介绍一些音频开发的基础常识,非常重要,因为不了解这些常识,很多Android API或者第三方库的参数,你都不知道该怎么配置。1. 音频开发的主要应用有哪些?音频播放器,录音机,语音电话,音视频监控应用,音视频直播应转载 2016-08-25 20:52:29 · 3736 阅读 · 3 评论 -
Camera 图像处理原理分析
Camera 图像处理原理分析- 色彩篇 一http://blog.youkuaiyun.com/colorant/article/details/1913200Camera 图像处理原理分析- 色彩篇 二http://blog.youkuaiyun.com/colorant/article/details/1913209 Camera 图像处理原理分析- 色彩篇 三http://原创 2016-11-07 12:19:14 · 879 阅读 · 0 评论 -
《视频直播技术详解》系列之六:延迟优化
七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。结合七牛实时流网络 LiveNet 和直播云解决方案的实践,我们用八篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面、深入地了解视频直播技术,更好地技术选型。本系列文章大纲如下:(转载 2016-10-03 08:40:14 · 768 阅读 · 0 评论 -
FFmpeg的库函数源代码分析
FFmpeg的库函数源代码分析文章列表:【架构图】FFmpeg源代码结构图 - 解码FFmpeg源代码结构图 - 编码【通用】FFmpeg 源代码简单分析:av_register_all()FFmpeg 源代码简单分析:avcodec_register_all()FFmpeg 源代码简单分析:内存的分配和释放(av_malloc()、av_f转载 2016-10-31 14:51:00 · 2560 阅读 · 0 评论 -
直播Android推流外部数据采集
有些研发能力比较强的客户,会有自定义图像处理的需求(比如自定义图像滤镜),同时又希望复用rtmp sdk的整体流程,如果是这样,您可以按照如下攻略进行定制。Step1. 实现一个图像处理的so您需要自己实现一个so,比如test.so,然后按照如下定义导出一个C风格的函数,之所以强制使用C而不是java是因为图像处理的效率C和C++比较容易胜任。您实现的PVideoProces原创 2016-11-16 18:38:32 · 2415 阅读 · 0 评论 -
FFmpeg学习链接和笔记
FFmpeg学习1:视频解码http://www.cnblogs.com/wangguchangqing/p/5734998.htmlFFmpeg学习2:解码数据结构及函数总结http://www.cnblogs.com/wangguchangqing/p/5744941.htmlFFmpeg学习3:播放音频http://www.cnblog原创 2016-10-17 17:20:32 · 604 阅读 · 0 评论 -
Android音频开发:音频数据的编解码
转载自:http://ticktick.blog.51cto.com/823160/17601911. Android 官方的 MediaCodec API首先,我们了解一下 Android 官方提供的音频编解码的 API,即 MediaCodec 类,该 API 是在 Andorid 4.1 (API 16) 版本引入的,因此只能工作于 Android 4转载 2016-08-27 14:10:31 · 2829 阅读 · 0 评论