簡體   English   中英

在java中將視頻拆分為圖像幀

[英]Split video into image frames in java

我想使用 Java 代碼讀取視頻(MPEG、AVI 或任何流行格式)並將其拆分為多個幀(Jpeg),例如將 2 秒視頻拆分為 48 個圖像(2X24 幀/秒)。這可能嗎?在java中。事后看來,我還想知道是否可以使用圖像數組創建視頻(在編輯單個圖像后重建視頻)。 任何幫助將不勝感激。提前致謝。

您可以使用 FFMPEG,它是一個開源 C 程序構建,也是最流行的視頻網站使用的最快的視頻/音頻處理庫。

使用exec方法調用ffmpeg。

輕松使用天鵝絨視頻

從視頻文件中獲取幀作為圖像:

IVelvetVideoLib lib = VelvetVideoLib().getInstance();
try (IDemuxer demuxer = lib.demuxer(new File("/some/path/example.mp4"))) {
    IDecoderVideoStream videoStream = demuxer.videoStream(0);
    IFrame videoFrame;
    while ((videoFrame = videoStream.nextFrame()) != null) {
        BufferedImage image = videoFrame.image();
        // Use image as needed...
    }
}  

從圖像陣列合成視頻

BufferedImage[] images = ...
IVelvetVideoLib lib = VelvetVideoLib().getInstance();
try (IMuxer muxer = lib.muxer("matroska")                    // specify you format
    .video(lib.videoEncoder("libaom-av1").bitrate(800000))   // specify you codec
    .build(new File("/some/path/output.mkv"))) {
         IEncoderVideoStream videoStream = muxer.videoStream(0);
         for (BufferedImage image : images) {
             videoStream.encode(image);
         }
}    

免責聲明:我是天鵝絨視頻的作者

您可以使用 JMF (http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM