上一章编译生成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在安卓上进行渲染显示