Nếu bạn muốn làm điều đó với java, bạn có thể làm điều đó rất dễ dàng bằng cách sử dụng Xuggle.
Họ có một trang web tuyệt vời giải thích cách làm mọi thứ
tài liệu là ở đây: http://build.xuggle.com/view/Stable/job/xuggler_jdk5_stable/javadoc/java/api/index.html
và một hướng dẫn tuyệt vời nói cho bạn làm thế nào để làm những gì bạn muốn là ở đây: http: // viết blog .xuggle.com/2009/06/05/giới thiệu-to-xuggler-mediatools/
Chúng cung cấp một cách dễ dàng để làm những gì bạn muốn trong hướng dẫn đầu tiên, đó là chuyển mã đơn giản.
Tôi thấy rằng nó hoạt động tốt cho việc mã hóa thành flv. Những gì nó làm đằng sau hậu trường là sử dụng ffmpeg, vì vậy bất cứ điều gì mà sẽ đi lên ffmpeg cũng sẽ thất bại với xuggle.
Mẫu mã java có liên quan là:
// create a media reader
IMediaReader reader = ToolFactory.makeReader("videofile.flv");
// add a viewer to the reader, to see the decoded media
reader.addListener(ToolFactory.makeWriter("output.mov", reader));
// read and decode packets from the source file and
// and dispatch decoded audio and video to the writer
while (reader.readPacket() == null)
;
nào tôi nhận được từ http: //wiki.xuggle.com/MediaTool_Introduction
Nếu bạn muốn một số mã clojure làm việc đầy đủ ... đây nó là :)
(import '(com.xuggle.mediatool ToolFactory))
(import '(com.xuggle.mediatool IMediaDebugListener IMediaDebugListener$Event))
(defn readerRecurse
"calls .readPacket until there's nothing left to do2"
[reader]
(if (not (nil? (.readPacket reader))) ; here .readPacket actually does the processing as a side-effect.
true ; it returns null when it has MORE ro process, and signals an error when done...
(recur reader)))
(defn convert
"takes video and converts it to a new type of video"
[videoInput videoOutput]
(let [reader (ToolFactory/makeReader videoInput)]
(doto reader
(.addListener (ToolFactory/makeWriter videoOutput reader))
(.addListener (ToolFactory/makeDebugListener (into-array [IMediaDebugListener$Event/META_DATA]))))
(readerRecurse reader)))
bây giờ tất cả bạn phải làm là một cái gì đó như:
(convert "/path/to/some_file.stupid_extention" "/path/to/awesome.flv")
và bạn đã hoàn tất!
Nguồn
2010-04-09 04:43:23
Việc sử dụng CPU chắc chắn là thứ bạn sẽ phải chú ý nếu bạn đang chạy trên môi trường lưu trữ được chia sẻ. Hầu hết các kế hoạch cung cấp nhiều không gian đĩa và băng thông, nhưng rất keo kiệt về sức mạnh CPU bạn sử dụng. – Kibbee