javacpp-FFmpeg系列之1:視頻拉流解碼成YUVJ420P,並保存為jpg圖片


javacpp-ffmpeg系列:

javacpp-FFmpeg系列之1:視頻拉流解碼成YUVJ420P,並保存為jpg圖片

javacpp-FFmpeg系列之2:通用拉流解碼器,支持視頻拉流解碼並轉換為YUV、BGR24或RGB24等圖像像素數據

javacpp-FFmpeg系列之3: 圖像數據轉換(BGR與BufferdImage互轉,RGB與BufferdImage互轉)

前言

本篇文章算是javacv系列的后續,javacv算是作者在ffmpeg基礎上封裝了一層,我們算是站在別人的肩膀上,盡管javacv還有很多不足的地方,這個暫且不談。當然這次寫的這篇算是回歸底層實現了,用別人封裝好的可能兩三行就可以搞定的東西,這次偏偏想不開去參照了c++的實現,其中拉流部分參考了部分javacpp官方的demo(沒有文檔,等你來填233),解碼和圖片部分參考了c++的實現。

 

一、說明以及依賴

本篇文章主要是為了視頻截圖功能,本篇的代碼可以復用到其他比如本地文件的截圖,或者作為后台截圖服務的實現庫,也很穩定。

使用了javacpp1.4.1版本作為java調用c++的方式,ffmpeg使用了3.4.2版本

maven方式:

<properties>

<!-- javacpp當前版本 -->
        <javacpp.version>1.4.1</javacpp.version>
        <!-- ffmpeg版本 -->
        <ffmpeg.version>3.4.2</ffmpeg.version>

</properties>

            <dependency>
                <groupId>org.bytedeco</groupId>
                <artifactId>javacv-platform</artifactId>
                <version>${javacpp.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bytedeco</groupId>
                <artifactId>javacpp</artifactId>
                <version>${javacpp.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bytedeco.javacpp-presets</groupId>
                <artifactId>ffmpeg-platform</artifactId>
                <version>${ffmpeg.version}-${javacpp.version}</version>
            </dependency>

二、實現功能

1、ffmpeg拉流(視頻源可以是文件和流媒體(rtsp/rtmp/hls/flv等等))

2、將視頻幀解碼為yuvj420p圖像數據

3、將yuvj402p圖像數據保存為jpg圖片https://blog.csdn.net/eguid_1/article/details/81369055

 

完整閱讀本章:https://blog.csdn.net/eguid_1/article/details/81369055


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM