2013-05-13 6 views
7

Potrzebuję scalić obrazy do wideo jako nakładkę i wyeksportować je. Znalazłem sposoby tworzenia wideo z obrazów przy użyciu javacv, ale nie znalazłem żadnego słoika lub biblioteki, które dodają obrazy jako nakładkę do istniejącego wideo, niektóre z linków sugerują użycie FFMPEG i JNI, aby to osiągnąć, ale niestety nie posiadać dowolną wiedzę o JNI. Wykorzystują framework avfoundation w IOS, aby osiągnąć to samo.Jak dodać animowany/prosty obraz jako najwyższą warstwę do wideo i wyeksportować go jako pojedynczy plik wideo w systemie Android?

enter image description here

Powyższy obraz jest repliką moje wymagania, jeśli ktoś może poprowadzi mnie w odpowiednim kierunku i zapewnić mi kilka przydatnych rzeczy na początek byłoby mile widziane.

Co osiągnąłem do tej pory to: 1) Zestawienie FFMPEG. 2) Wygenerowano .so pliki 3) Opracowano i mogłem uruchomić projekt Hello Jni.

Czego szukam to: 1) Podział wideo na ramki. 2) Scalanie obrazów nakładki z ramkami wideo 3) Odtwarzanie wideo z dźwiękiem.

i wiem, że JNI to jedyny sposób, aby to osiągnąć, więc dużo nie szukano, ale na początku nie znaleźliśmy dobrego produktu JNI. Nie pytam o cały kod, ale jeśli ktoś może wskazać mi jakiś dobry tutorial lub blog będzie świetną pomocą.

Dzięki!

+1

Ostatni Android wypuścił wreszcie kodek. Możesz tego użyć. http://stackoverflow.com/questions/18795353/using-mediacodec-to-save-series-of-images-as-video JNI ma problem kompatybilności, który jest naprawdę bummer. – lifelogger

Odpowiedz

1

Sposób na osiągnięcie tego jest taki, jak powiedziałeś - włączenie kodeka wideo i użycie go do ponownego skomponowania wideo.

  1. Decode oryginalny film
  2. Narysuj swoją nakładkę nad oryginalnego wideo ramek
  3. zakodowania klatek ponownie.

Używanie FFMPEG z JNI jest oczywistym rozwiązaniem, ale jeśli znajdziesz inną bibliotekę kodeków, która może to samo zrobić z czystą Javą, to też będzie działać.

Brak wiedzy na temat JNI? To czas, aby się go nauczyć =)

Odniesienia do nauki:

  1. NDK Docs na systemie plików: 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 dla Androida - istnieje wiele tutoriali i wiele drzew źródłowych, które zawierają gotowe środowisko kompilacji. Możesz je wykonać albo po prostu zrobić to sam - pod warunkiem, że znasz środowisko NDK i możesz czytać pliki makefile. To jest przykład: http://vec.io/posts/how-to-build-ffmpeg-with-android-ndk

  4. Korzystanie ffmpeg do kodowania \ ramek dekodowania - niestety, nie ma dobrych up-to-date tutaj tutoriale, jest dokumentacja API: http://ffmpeg.org/doxygen/trunk/index.html

  5. Mieszanie bitmap - używać Androida Canvas infrastruktura lub po prostu ręcznie skopiuj piksele na siebie i mieszaj zgodnie z wartościami alfa.

Ostrzeżenie - jest to złożona biblioteka do zbudowania i lepiej wypróbować łatwiejsze projekty NDK przed przystąpieniem do tej.

+0

Dzięki SriKnigget, proszę wskazać mi tutorial lub bloga, który znasz, aby osiągnąć to, co zasugerowałeś, w zasadzie JNI do kodowania-dekodowania wideo. Zmieniłem moje pytanie, aby wyjaśnić, gdzie dokładnie potrzebuję pomocy od was. –

+0

Zaktualizowana treść odpowiedzi – SirKnigget

Powiązane problemy