[Java] 序列化 Images 转换成 AVI/MOV 以及多个AVI的合并

来源:互联网 发布:网络客服沟通技巧ppt 编辑:程序博客网 时间:2024/06/15 01:41

Java Media Framework 中,有很完整的範例程式 JMF 2.1.1 Solutions ,它可以將 jpeg 弄成 mov 影片,並且又提供 merge 的範例,但無論我怎樣試,都沒辦法把兩個 mov 再串成一個 mov ,儘管程式在編譯或執行上都沒有顯示任何問題(除了範例程式使用 Vector 沒有指定 type),但合併的結果卻不是正常的,真讓我十分灰心。

  • Generating a Movie File from a List of (JPEG) Images
  • Extracting Frames from Video - vid2jpg.zip
  • ImageJ
  • Writing AVI videos using pure Java
  • Java Media Framework - Possible to generate AVI video using JMF?
  • Java Media Framework - Generating a .mjpg or .avi file from a List of Images
  • Java Media Framework - convert jpeg to mpeg/avi
  • JMF 2.1.1 - Supported Formats
  • JMF-INTEREST Archives

最後,關於 Jpeg 製成 AVI 的部分,我使用 Writing AVI videos using pure Java 這篇提到的 AVIDemo.jar 程式庫,寫得滿乾淨又簡單!

import ch.randelshofer.media.avi.AVIOutputStream;
import java.io.*;
import java.awt.image.BufferedImage ;
import javax.imageio.ImageIO;

class test
{
        public static void main( String[] args ) throws Exception
        {
                if( args.length < 2 )
                {
                        System.out.println( "Usage> test file_out 1.jpg" );
                        System.exit( -1 );
                }
                AVIOutputStream out = null;
                out = new AVIOutputStream( new File( args[0] ) , AVIOutputStream.VideoFormat.JPG );
                out.setVideoCompressionQuality( 1f );
                out.setTimeScale(1);
                out.setFrameRate(1);

                for( int i=1 ; i <args.length ; ++i )
                {
                        out.writeFrame( ImageIO.read(new File( args[i] ) ) );
                }
                out.close();
        }
}

如此一來,就能夠用 java test out.avi 1.jpg 2.jpg 3.jpg 來產生影片啦!

關於 Merge 的部分,暫時沒有 Java 版的成果,以下是相關的參考資料,但我尚未測試成功。

  • Merging Tracks from Multiple Inputs
  • Java Media Framework - can I join two avi video files?

關於將兩個影片串在一起,其實早就有範例可用啦!

  • Concatenating Multiple Inputs

用上述的範例程式就可以成功把我作的影片合併再一起!

 

如果是 C 的版本,那有 Transcode 可以用喔,裡頭有一支 tool 叫 avimerge ,它可以很成功的將我用上述 Java 程式產生影片合併串在一起。最後,若純粹只是想把 jpeg 串成影片,或將影片再合併起來,滿推薦使用 mencoder 和 Transcode - avimerge ,前者有需要可以再參考這篇 製作 Motion JPEG (Mjpeg) 影片 - 將連續的照片串成影片 。

 

原创粉丝点击