OpenCv3.5再編のJavaベースの統合ffmpegのビデオの例

公式チュートリアル:https://riptutorial.com/opencv/example/28548/creating-a-video-with-opencv--java-

一部の個人シンプルなパッケージ、応用例:

輸入org.opencv.core.Core; 
輸入org.opencv.core.Mat。
輸入org.opencv.core.Size。
輸入org.opencv.videoio.VideoCapture。
輸入org.opencv.videoio.VideoWriter。
輸入org.opencv.videoio.Videoio; 

パブリック クラスVideoOperatorTest { 

    静的{ 
        System.loadLibraryを(Core.NATIVE_LIBRARY_NAME)。
    } 

    パブリック 静的 ボイドメイン(文字列[]引数){ 

        文字列は、localUrl = " /home/lab/1111.mp4 " 
        文字列outputPath = " /home/lab/2222.mp4 " 
        videoReassemble(は、localUrl、outputPath)。
    } 

    パブリック 静的 ボイドvideoReassemble(文字列inputPath、列outputPath){ 
        VideoCaptureキャプチャ = NULL ; 
        作家VideoWriter = nullを長いスタート= にSystem.currentTimeMillis();
        試す{ 
            キャプチャ = 新しいVideoCapture(inputPath)。
            INT FOURCC = VideoWriter.fourcc(' X '' 2 '' 6 ' ' 4 '); //编码方式x264の
            ダブルFPS =キャプチャ。取得(Videoio.CV_CAP_PROP_FPS)。//帧率
            サイズフレームサイズ = 新しいサイズ((int型)キャプチャ。取得(Videoio.CAP_PROP_FRAME_WIDTH)、(int型)キャプチャ。取得(Videoio.CAP_PROP_FRAME_HEIGHT)); //宽高
            ライター = 新しい VideoWriter(outputPath、FOURCC、FPS、フレームサイズ、真の);
            int型私= 0 ; 
            マットフレーム = 新しいマット()。
            一方、(capture.read(フレーム)){
                もし(I == 0 ){
                     バイトバフ[] = 新しい バイト [(INT)(frame.total()* frame.channels())]。
                    フレーム。取得00 、バフ)。
                    // 修改首帧像素值 
                    frame.put(00 、バフ)。
                } 
                writer.write(フレーム)。
                I ++ ; 
            } 
        } キャッチ(例外e){
            e.printStackTrace(); 
        } 最後に{
             場合(!捕獲= NULL ){ 
                capture.release()。
            } 
            であれば(ライター!= NULL ){ 
                writer.release()。
            } 
        } 
        長い端= にSystem.currentTimeMillis(); 
        システム。アウト .println(" コストミリ:" +(終了- 開始)); 
    } 

}

 

おすすめ

転載: www.cnblogs.com/nyatom/p/11239368.html