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?
Odpowiedz
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.
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
@Mahesh scala dwa pliki, a następnie łączy scalony plik z następnym i tak dalej? – Cheesebaron
@Cheesebaron Czy to możliwe, co mówisz? –
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
- 1. Jak połączyć dwa lub więcej strumieni
- 2. Jak połączyć dwa lub więcej plików/strumieni gzip
- 3. Połączyć dwa lub więcej plików xls jako arkusze kalkulacyjne PHPExcel
- 4. Jak połączyć 3 lub więcej etapów realizacji?
- 5. Jak połączyć 2 lub więcej złożeń C# w 1 bibliotekę?
- 6. Jak połączyć dwa pliki w systemie kontroli wersji
- 7. Połączyć dwie lub więcej przestrzeni nazw C++ w jedną
- 8. dwa lub więcej zagnieżdżonych RelativeLayout
- 9. Jak połączyć dwa ArrayLists?
- 10. jak połączyć dwa LPCWSTRy?
- 11. Dwa (lub więcej) opcji w Swift
- 12. Python - Połączyć dwa słowniki, połączyć wartości ciągów?
- 13. Jak połączyć dwa strumienie pamięci?
- 14. Jak połączyć dwa obiekty w JavaScript?
- 15. Jak połączyć dwa atomy/łańcuchy?
- 16. Jak połączyć dwa wyniki jQuery
- 17. Jak połączyć dwa SwiftyJSON obiektów
- 18. Jak połączyć dwa wchar_t * razem?
- 19. Jak odczytać BufferedReader dwa lub więcej razy?
- 20. PLIK * i istream: połączyć dwa?
- 21. Połączyć dwa wyniki w Powershell
- 22. Jak połączyć dwa generatory w Pythonie?
- 23. Jak połączyć dwa ResultSets w Javie?
- 24. Jak połączyć dwa proci w jeden?
- 25. Jak połączyć dwa ciągi (IO) w Haskell?
- 26. Jak połączyć dwa plasterki w Rust?
- 27. Jak połączyć dwa wektory w ramce danych
- 28. C++ i JMS - jak połączyć te dwa?
- 29. Jak połączyć kolumny dwóch plików w systemie unixowym
- 30. Jak połączyć pliki audio i wideo w Androidzie
ffmpeg jest wielka biblioteka czynienia z konwersji wideo, a co nie. Tutaj znajduje się powiązanie java: http://code.google.com/p/jjmpeg/ – appnus
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