Javaは、このようなビデオトランスコーディングなどのマルチスレッド処理タスクのためのffmpegのフレームワークを使用しています - タスクの進行状況を取得することができます - 同期または非同期実行することができ

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/zhanghaishan/article/details/84951212

使用

<dependency>
	<groupId>org.mountcloud</groupId>
	<artifactId>ffmpeg-operate</artifactId>
	<version>1.0</version>
</dependency>

説明

  プロジェクトはFFMPEGインストール環境を使用し、コンソールでFFMPEGのコマンドを使用することができ前提条件。このプロジェクトは大幅にJavaのFFMPEG機能の使用を容易にします。

  ビデオを見るのプロパティ(FFMpegVideoInfo)、3:ビデオキャプチャ(FFMpegVideoScreenShot)M3U8(FFMpegVideoFormatM3u8)、2にビデオフォーマット:プロジェクトは、ビデオ1の3つの操作を建てました。また、継承FFMpegOperationBaseて拡張することができます。

機能

1:あなたは、タスクの実装の進捗状況の割合を得ることができます。

2:非常に高いスケーラビリティ。

3:マルチスレッド動作モード。

Demo 用例

@Test
public void convertM3u8() {
	
	//create result bean
    FFVideoInfoResult result = new FFVideoInfoResult();

	//find video info
    FFMpegVideoInfo ffMpegVideoInfo = new FFMpegVideoInfo();
    ffMpegVideoInfo.setVideoUrl("D:\\cma_15307640036trzll1p.mp4");
    FFMepgVideoInfoTask videoInfoTask = new FFMepgVideoInfoTask(result,ffMpegVideoInfo);

    FFTaskContext.getContext().submit(videoInfoTask,null);

    String bitrate = "5286k";

    //create to m3u8 operation
    FFMpegVideoFormatM3u8 m3u8Operation = new FFMpegVideoFormatM3u8();
    m3u8Operation.setVideoFileName("D:\\cma_15307640036trzll1p.mp4");
    m3u8Operation.setBitrate(bitrate);
    m3u8Operation.setTimes(5);
    m3u8Operation.setM3u8File("D:\\cma_15307640036trzll1p\\cma_15307640036trzll1p.m3u8");
    m3u8Operation.setTsFiles("D:\\cma_15307640036trzll1p\\cma_15307640036trzll1p%5d.ts");

	//to m3u8 task
    FFMepgVideoFormatM3u8Task task = new FFMepgVideoFormatM3u8Task(m3u8Operation);

	//add task
    FFTaskContext.getContext().addTask(task);

    while(!task.getProgress().getState().equals(FFTaskStateEnum.COMPLETE)){
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
        }
    }

    System.out.println("COMPLETE");

}

ノートノート

1:.. FFTaskContext.getContext()addTask(タスク)が非同期タスクであり、FFTaskContext.getContext()(taks)を提出する同期タスクであります

 

プロジェクトアドレス

https://github.com/MountCloud/ffmpeg-operate

おすすめ

転載: blog.csdn.net/zhanghaishan/article/details/84951212
おすすめ