ffmpeg例程之解封装和解压缩功能,解压缩获取YUV数据

上一章编译生成ffmpeg的动态链接库之后,先试着跑一下读取文件,接封装解压缩的例程吧。
1、如果你在./configure的时候采用默认安装路径(即没有配置–prifix=)。则可到/usr/local/share/ffmpeg/examples获取demuxing_decoding.c
在这里插入图片描述
在这里我把它单独拿出来,使用独立的cmake文件对他进行编译和使用:
2、编写CMakeLists.txt
-先创建一个CMakeLists.txt文件,添加以下内容:

cmake_minimum_required(VERSION 3.5) 
project(demuxingtest)
find_package( OpenCV REQUIRED )
include_directories("/usr/local/include")
LINK_DIRECTORIES("/usr/local/lib")
add_executable( demuxingtest demuxing_decoding.c )
target_link_libraries(demuxingtest ${OpenCV_LIBS} libavutil.so  libavcodec.so   libavformat.so )

include_directories() 和 LINK_DIRECTORIES() 配置可替换自己的路径,我这里使用的是安装的默认路径

-创建一个build文件夹,以及复制demuxing_decoding.c过来
目录结构如下:
在这里插入图片描述
-现在,可以编译demuxing_decoding.c了

cd build
sudo cmake ..
sudo make

现在,bulid 目录下生成了可执行文件demuxingtest
在这里插入图片描述
3、使用例程文件:
可以通过

需要我们提供一个独立视频文件和音频文件,我创建了一个rawvedio.yuv,一个rawaudio.pcm
在这里插入图片描述
使用例程:
./demuxingtest …/…/xunlong.mp4 rawvedio.yuv rawaudio.pcm
成功填充数据到两个文件中
在这里插入图片描述
之后,通过上面截图中红色箭头的标识可以看到。可以使用我们的ffplay来对yuv数据经型播放。
例程编译完成,接下来是看源码,将该功能添加到自己的项目中
工程文件后续提交到github上

将生成的yuv数据文件直接添加到自己的安卓JNI程序上播放,能正常播放。后续可以写写将yuv文件通过opengl在安卓上进行渲染显示
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章