2011-11-17 52 views
9

Có cách nào để tạo video từ một loạt hình ảnh trên Android không? Có thể là một cách để mở rộng MediaRecorder và có thể lấy hình ảnh làm đầu vào.Tạo video từ hình ảnh

Tôi cố gắng tạo video và lưu trữ video (ví dụ như tệp mpeg4).

Cảm ơn mọi đề xuất.

+0

Chào mừng bạn đến với Stackoverflow! Nếu bạn trả lời là hữu ích, vui lòng bỏ phiếu.Nếu câu trả lời thành công, bạn hãy nhấp vào dấu kiểm màu xanh bên cạnh để chấp nhận câu trả lời. –

+0

Xin chào. Bạn đã quản lý để tạo ra ở cuối video ở định dạng mpeg4 từ những hình ảnh? cảm ơn – Paul

Trả lời

1

Bạn có thể sử dụng AnimationDrawable trong một ImageView.

Thêm khung bằng phương pháp AnimationDrawable.addFrame(Drawable frame, int duration) và bắt đầu hoạt ảnh bằng cách sử dụng AnimationDrawable.start().

Không chắc đó có phải là lý tưởng hay không, nhưng nó sẽ hoạt động.

+0

Xin chào iPaulPro và cảm ơn câu trả lời. Tôi nghĩ rằng 'không đủ rõ ràng. Tôi cố gắng tạo video và lưu trữ nó (ví dụ như một tập tin mpeg4). AnimationDrawable không tạo ra bất kỳ đầu ra nào. – HiddenDev

+0

Ồ, tôi hiểu rồi. Bạn có thể muốn chỉnh sửa câu hỏi của mình để mô tả tốt hơn nhu cầu của bạn. –

+1

Yêu cách tôi bị bỏ phiếu bình chọn để trả lời đúng câu hỏi gốc. –

6

Tôi cũng đang cố gắng làm điều tương tự. Tôi đã được tư vấn để sử dụng Libav. http://libav.org/ Tuy nhiên tôi cần phải xây dựng nó với NDK và hiện tại tôi đang gặp phải một số vấn đề.

Tôi đang tìm một số tài liệu về nó. Tôi sẽ giữ cho bạn được đăng.

tôi đã tạo ra một bài về nó: Libav build for Android

+0

Tôi cũng đang cố gắng để đạt được nhiệm vụ tương tự nhưng tiếc là tôi không nhận được cách nào gần bạn có thể giúp tôi ra tôi là người lạ hoàn toàn để ndk, ffmpeg và không có hướng dẫn tốt hơn có sẵn bất kỳ trợ giúp được đánh giá cao –

0

Chúng ta có thể tạo video từ hình ảnh sử dụng ffmpeg.

Kiểm tra post để sử dụng ffmpeg trong Android.

Sử dụng dưới lệnh để tạo video từ hình ảnh đặt trong cùng một thư mục

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

Ở đây,

src.getAbsolutePath() là đường dẫn tuyệt đối của tất cả các hình ảnh đầu vào của bạn.

Ví dụ, Nếu tất cả các hình ảnh của bạn được lưu trữ trong thư mục hình ảnh bên trong Hình thư mục với tên extract_picture001.jpg, extract_picture002.jpg, extract_picture003.jpg ......

. Sau đó,

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); 

Đối tạo video từ hình ảnh được đặt trong thư mục khác nhau mà bạn phải tạo một tập tin văn bản và thêm các đường dẫn hình ảnh để nó và sau đó xác định con đường mà tập tin văn bản như một tùy chọn đầu vào. Ví dụ,

Text File

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 

lệnh

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

nơi textFile.getAbsolutePath() là đường dẫn tuyệt đối của file văn bản của bạn

Check-out ffmpeg này doc để biết thêm

Các vấn đề liên quan