2013-05-13 30 views
7

Tôi cần hợp nhất hình ảnh vào video dưới dạng lớp phủ và xuất hình ảnh đó. Tôi đã tìm ra cách để tạo video từ hình ảnh bằng cách sử dụng javacv nhưng không tìm thấy bất kỳ jar hoặc thư viện nào thêm hình ảnh làm lớp phủ cho video hiện tại, một số liên kết đề xuất sử dụng FFMPEG và JNI để đạt được điều này nhưng đáng buồn là tôi không có bất kỳ kiến ​​thức nào về JNI. Họ sử dụng khuôn khổ avfoundation trong IOS để đạt được như vậy.Làm cách nào để chúng tôi có thể thêm hình ảnh động/đơn giản làm lớp trên cùng cho video và xuất dưới dạng một video trong Android?

enter image description here

Những hình ảnh trên là bản sao của các yêu cầu của tôi, nếu bất kỳ ai có thể hướng dẫn cho tôi trong đúng hướng và cung cấp cho tôi một số công cụ hữu ích để bắt đầu với sẽ được đánh giá.

Điều tôi đã đạt được cho đến thời điểm này là: 1) Biên soạn FFMPEG. 2) Đã tạo các tệp .so 3) Biên soạn và có thể chạy dự án Hello Jni.

Điều tôi đang tìm kiếm là: 1) Tách video thành khung. 2) Hợp nhất hình ảnh lớp phủ của tôi với khung hình video 3) Tạo lại video bằng âm thanh.

và tôi biết JNI là cách duy nhất để đạt được điều này nên đã tìm kiếm rất nhiều nhưng không tìm thấy bất kỳ công cụ JNI nào tốt để bắt đầu. Tôi không yêu cầu cho toàn bộ mã nhưng nếu một số người có thể chỉ cho tôi ra với một số hướng dẫn hay blog tốt sẽ là trợ giúp tuyệt vời.

Cảm ơn !!

+1

Android gần đây gần đây đã phát hành Codec. Bạn có thể sử dụng nó để làm điều đó. http://stackoverflow.com/questions/18795353/using-mediacodec-to-save-series-of-images-as-video JNI có vấn đề về khả năng tương thích thực sự là một con số thấp. – lifelogger

Trả lời

1

Cách thực hiện điều này giống như bạn đã nói - kết hợp codec video và sử dụng nó để soạn lại video.

  1. Giải mã các video gốc
  2. Vẽ lớp phủ lên video gốc khung
  3. Mã hóa các khung một lần nữa.

Sử dụng FFMPEG với JNI là giải pháp hiển nhiên, nhưng nếu bạn tìm thấy bất kỳ thư viện codec nào khác có thể thực hiện tương tự với Java thuần túy, nó cũng sẽ hoạt động.

Không có kiến ​​thức về JNI? Đó là khoảng thời gian để tìm hiểu nó =)

Tài liệu tham khảo cho việc học tập:

  1. docs NDK trên hệ thống tập tin của bạn: http://developer.android.com/tools/sdk/ndk/index.html#Docs

  2. JNI - http://192.9.162.55/docs/books/jni/html/jniTOC.html

  3. FFMPEG cho Android - có rất nhiều hướng dẫn ở đó và nhiều cây nguồn có chứa một môi trường xây dựng sẵn sàng. Bạn có thể theo dõi hoặc tự mình làm điều đó - miễn là bạn hiểu môi trường NDK và có thể đọc các tệp makefiles. Đây là một ví dụ: http://vec.io/posts/how-to-build-ffmpeg-with-android-ndk

  4. Sử dụng ffmpeg để mã hóa khung \ decode - buồn bã, không tốt up-to-date hướng dẫn ở đây, có tài liệu API: http://ffmpeg.org/doxygen/trunk/index.html

  5. bitmap Blending - sử dụng Canvas Android cơ sở hạ tầng hoặc chỉ sao chép điểm ảnh theo cách thủ công trên nhau và hòa trộn theo giá trị alpha.

Cảnh báo - đây là thư viện phức tạp để xây dựng và bạn nên thử nghiệm các dự án NDK dễ dàng hơn trước khi thử dự án này.

+0

Cảm ơn SriKnigget, xin vui lòng chỉ cho tôi một số hướng dẫn hoặc blog bạn biết để đạt được những gì bạn đã gợi ý, về cơ bản là một JNI để mã hóa giải mã video. Tôi đã chỉnh sửa câu hỏi của tôi để làm rõ nơi chính xác tôi cần sự giúp đỡ từ các bạn. –

+0

Cập nhật nội dung câu trả lời – SirKnigget

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