2011-11-17 135 views
9

有沒有辦法從android上的一系列圖像創建視頻?也許是一種擴展MediaRecorder並能夠將圖像作爲輸入的方式。從圖像創建視頻

我嘗試要真正創建視頻,並將其存儲(如例如一個MPEG4文件)。

感謝您的任何建議。

+0

歡迎來到Stackoverflow!如果你的回覆有幫助,請投票。如果回覆成功回答您的問題,請點擊旁邊的綠色複選標記以接受答案。 –

+0

嗨。您是否設法從這些圖像中創建mpeg4格式的視頻?謝謝 – Paul

回答

1

您可以在ImageView使用AnimationDrawable

使用AnimationDrawable.addFrame(Drawable frame, int duration)方法添加框架,並使用AnimationDrawable.start()開始動畫。

不知道這是否理想,但它會工作。

+0

嗨iPaulPro並感謝您的答案。 我覺得還不夠清楚。我試圖真正創建視頻並將其存儲(例如,作爲mpeg4文件)。 AnimationDrawable不會創建任何輸出。 – HiddenDev

+0

哦,我明白了。您可能想編輯您的問題以更好地描述您的需求。 –

+1

愛我如何得到 - 投票回答正確的問題。 –

6

我也在嘗試做同樣的事情。我一直建議使用Libav。 http://libav.org/ 但是我需要用NDK來構建它,並且我目前有一些問題。

我在找一些關於它的文檔。我會及時向大家發佈。

我創建了一個帖子看:Libav build for Android

+0

我也試圖實現相同的任務,但不幸的是我沒有辦法靠近你能幫我嗎我完全陌生的ndk,ffmpeg和沒有更好的教程可用任何幫助表示讚賞 –

0

我們可以創建使用ffmpeg的影像視頻。

看看我post在Android的使用的ffmpeg。下面的命令

用來創建放在同一個文件夾

String command[]={"-y", "-r","1/5" ,"-i",src.getAbsolutePath(), 
"-c:v","libx264","-vf", "fps=25","-pix_fmt","yuv420p", dest.getAbsolutePath()}; 

這裏圖像視頻,

src.getAbsolutePath()是所有輸入圖像的絕對路徑。

例如, 如果你所有的圖像存儲在圖像文件夾中的圖片目錄裏面的名字 extract_picture001.jpg,extract_picture002.jpg,extract_picture003.jpg ......

。 然後,

String filePrefix = "extract_picture"; 
String fileExtn = ".jpg"; 
File picDir = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES); 
File dir = new File(picDir, "Images"); 
File src = new File(dir, filePrefix + "%03d" + fileExtn); 

對於來自不同的放置文件夾中的圖像,你 必須創建一個文本文件,並添加圖片的路徑,然後指定 該文本文件作爲輸入選擇的路徑創建視頻。 例,

文本文件

file '/storage/emulated/0/DCIM/Camera/P_20170807_143916.jpg' 
duration 2 
file '/storage/emulated/0/DCIM/Pic/P_20170305_142948.jpg' 
duration 5 
file '/storage/emulated/0/DCIM/Camera/P_20170305_142939.jpg' 
duration 6 
file '/storage/emulated/0/DCIM/Pic/P_20170305_142818.jpg' 
duration 2 

命令

String command[] = {"-y", "-f", "concat", "-safe", "0", "-i", textFile.getAbsolutePath(), "-vsync", "vfr", "-pix_fmt", "yuv420p", dest.getAbsolutePath()}; 

其中textFile.getAbsolutePath()是文本文件

看看這個ffmpeg的doc的更多信息的絕對路徑