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在安卓上進行渲染顯示
在這裏插入圖片描述

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