[英]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.