FFmpeg之av_register_all()】的更多相关文章

1. av_register_all() 该函数位于 libavformat/allformats.c 中. 该函数主要是注册所有的编解码器.复用/解复用组件等. /* * Initialize liavformat and register all the muxers, demuxers and * protocols. If you do not call this function, then you can select * exactly which formats you want…
上一篇已经写了如何配置好开发环境,这次就先小试牛刀,来个视频的编码.搞视频处理的朋友肯定比较熟悉YUV视频序列,很多测试库提供的视频数据都是YUV视频序列,我们这里就用用YUV视频序列来做视频.关于YUV视频序列,我就不多讲了,可以看书学习,通常的视频序列都是YUV420格式的. 步骤也就那几步,添加视频流,打开编码器,开辟相应的内存空间,然后就可以打开YUV序列逐帧写入数据了,so easy!记得最后要做好文件的关闭和内存的释放,因为FFmpeg是c风格的(不知道新版本是否是c++风格的),这…
1.在terminal,安装ffmpeg开源库 #brew install ffmpeg 2.新建一个目录first_ffmpeg,并在first_ffmpeg目录下新建ffmpeg目录 3.拷贝/usr/local/Cellar/ffmpeg/4.1.1/下的lib和include文件夹到上一步中的ffmpeg目录 4.在first_ffmpeg,创建如下内容的CMakeLists.txt cmake_minimum_required(VERSION 2.8) project(first_ff…
之前一直用Directshow技术采集摄像头数据,但是觉得涉及的细节比较多,要开发者比较了解Directshow的框架知识,学习起来有一点点难度.最近发现很多人问怎么用FFmpeg采集摄像头图像,事实上FFmpeg很早就支持通过DShow获取采集设备(摄像头.麦克风)的数据了,只是网上提供的例子比较少.如果能用FFmpeg实现采集.编码和录制(或推流),那整个实现方案就简化很多,正因为这个原因,我想尝试做一个FFmpeg采集摄像头视频和麦克风音频的程序.经过一个星期的努力,终于做出来了.我打算把…
我们将对帧数据做一些处理,比如将每一帧的 图像转为jpg或者bmp或者ppm等格式保存下来. 举例:在ffmpeg-2.8.8文件夹下编写test.c程序 /* test.c */ #include<stdio.h> #include<libavcodec/avcodec.h> #include<libavformat/avformat.h> #include<libswscale/swscale.h> int main(int argc, char *ar…
1. 前言 目前为止,学习了并记录了ffmpeg+SDL2显示视频以及事件(event)的内容. 这篇中记录ffmpeg+SDL2播放音频,没加入事件处理. 接下来加入事件处理并继续学习音视频同步,再接下来就添加暂停之类的或者添个界面. 2. 流程图 3. 示例 示例代码的主要思想是:(和音频播放器V1.0思想一样,实现不同.不同在于这个程序用一个队列存储主线程读到的AVPacket) 主线程只负责读AVPacket存到队列.->av_read_frame() 其他所有的解码,输出工作都由cal…
在前面的学习中,视频和音频的播放是分开进行的.这主要是为了学习的方便,经过一段时间的学习,对FFmpeg的也有了一定的了解,本文就介绍了 如何使用多线程同时播放音频和视频(未实现同步),并对前面的学习的代码进行了重构,便于后面的扩展. 本文主要有以下几个方面的内容: 多线程播放视音频的整体流程 多线程队列 音频播放 视频播放 总结以及后续的计划 1. 整体流程 FFmpeg和SDL的初始化过程这里不再赘述.整个流程如下: 对于一个打开的视频文件(也就是取得其AVFormatContext),创建…
在上一篇文章中,对FFmpeg的视频解码过程做了一个总结.由于才接触FFmpeg,还是挺陌生的,这里就解码过程再做一个总结. 本文的总结分为以下两个部分: 数据读取,主要关注在解码过程中所用到的FFmpeg中的结构体. 解码过程中所调用的函数 在学习的过程主要参考的是dranger tutorial,所以跟着教程在本文的最后使用SDL2.0将解码后的数据输出到屏幕上. 数据的读取 一个多媒体文件包含有多个流(视频流 video stream,音频流 audio stream,字幕等):流是一种抽…
在视频解码前,先了解以下几个基本的概念: 编解码器(CODEC):能够进行视频和音频压缩(CO)与解压缩(DEC),是视频编解码的核心部分. 容器/多媒体文件(Container/File):没有了解视频的编解码之前,总是错误的认为平常下载的电影的文件的后缀(avi,mkv,rmvb等)就是视频的编码方式.事实上,刚才提到的几种文件的后缀 并不是视频的编码方式,只是其封装的方式.一个视频文件通常有视频数据.音频数据以及字幕等,封装的格式决定这些数据在文件中是如何的存放的,封装在一起音频.视频等数…
1.安装NDK:http://dl.google.com/android/ndk/android-ndk-r9-linux-x86.tar.bz2 sudo gedit ~/.bashrc 末尾添加: #add NDK PATH=$PATH:/home/sheldon/Android/android-ndk-r9/ source ~/.bashrc  : 立即生效配置,可以使用"ndk-build"指令 2.FFmpeg官方网站 http://www.ffmpeg.org/  下载源代…