2012-11-22 11 views
12

Chcę scalić dwa lub więcej plików wideo (mogą to być dwa mp4 lub dwa 3gp lub dowolny inny format).Jak połączyć lub połączyć dwa lub więcej plików wideo w systemie Android?

+2

ffmpeg jest wielka biblioteka czynienia z konwersji wideo, a co nie. Tutaj znajduje się powiązanie java: http://code.google.com/p/jjmpeg/ – appnus

+0

Użyłem FileInputSream do pobrania plików srouce, a następnie SequenceInputStream (stream1, stream2) do połączenia dwóch plików, ale wydaje mi się, że nie jest to właściwe sposób pracy z plikami wideo, również android spada wokół problemu wycieku pamięci, jeśli rozmiar sterty rozszerza się o więcej niż 16MB – Mahesh

Odpowiedz

14

Najbardziej podstawowym narzędziem, które można użyć, jest ffmpeg (jak wspomniano powyżej @Jeremy), ale użycie go na telefonie wymaga trochę pracy; również jest licencjonowany LGPL, a niektóre z jego koderów (w szczególności x264) to GPL.

Prostsze rozwiązanie, jeśli oba pliki, które chcesz łączyć, używają podobnego kodowania i są zawarte w formatach plików pochodnych od MP4 (takie jest 3GP), to używanie parsera czysto-java MP4 i łączenie filmów bez dotykania sam strumień mediów. Spójrz na mp4parser, parser open-source, który jest czysto-java, licencjonowany na licencji Apache, a nawet ma example for concatenating videos w swoim wiki.

+0

fajnie, parser mp4 działa dla 2 plików, ale nie działa poprawnie dla więcej niż 2 plików, wideo nie jest odpowiednio scalane. czy działa to jednocześnie dla więcej niż 2 plików? – Mahesh

+0

@Mahesh scala dwa pliki, a następnie łączy scalony plik z następnym i tak dalej? – Cheesebaron

+0

@Cheesebaron Czy to możliwe, co mówisz? –

5

Można spróbować Indeks Media for Mobile, tutoriale tutaj: https://software.intel.com/en-us/articles/intel-inde-media-pack-for-android-tutorials

Ma transkodowania \ funkcjonalność remuxing w klasie MediaComposer oraz możliwość łączenia segmentów Plik \. Ponieważ używa MediaCodec API, kodowanie odbywa się na GPU, więc jest bardzo przyjazny dla baterii i działa tak szybko, jak to możliwe.

Przykładowy kod pokazujący jak włączyć przyłączyć lub inna funkcjonalność jest na github: https://github.com/INDExOS/media-for-mobile

enter image description here enter image description here enter image description here