MP4Box – Konwersja filmów z kontenera FLV na MP4
3 stycznia 2012
Posted in linux
Tagged as flv, ipad, iphone, mp4, mp4box
Wojtek opisał dziś na swoim blogu fajny skrypt do „Pobierania dowolnych filmów z Vimeo„. Skrypt działa dobrze, pobiera filmy w maksymalnej jakości, jednakże wynik zapisuje w kontenerze FLV. Pobierane filmy są oczywiście zakodowane kodekiem H264, więc bez utraty jakości, można je szybko przerobić na kontener MP4.
Zdarza mi się od czasu do czasu pobrać film zapisany jako FLV i zawsze konwertuję go sobie na MP4. Lubię proste konsolowe narzędzia, które dają mi pełną kontrolę nad całym procesem. Dlatego też, używam opensource’owego programu MP4Box z pakietu GPAC. Na stronie tego projektu można pobrać skompilowane paczki pod wszelkie platformy.
Zanim przystąpimy do konwersji należy wyświetlić informacje o ścieżkach, które zawiera pobrany plik.
MP4Box -info 31733477-hd.flv
Track # 1 Info - TrackID 1 - TimeScale 30000 - Duration 00:05:04.033 Media Info: Language "Undetermined" - Type "vide:avc1" - 9121 samples MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21 AVC/H264 Video - Visual Size 1280 x 520 - Profile High @ Level 3.1 NAL Unit length bits: 32 Pixel Aspect Ratio 1:1 - Indicated track size 1280 x 520 Self-synchronized Track # 2 Info - TrackID 2 - TimeScale 44100 - Duration 00:05:04.088 Media Info: Language "Undetermined" - Type "soun:mp4a" - 13096 samples MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40 MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 44100 Synchronized on stream 1
Następnie wypakowujemy kolejno interesujące nas ścieżki:
MP4Box -raw 1 31733477-hd.flv
MP4Box -raw 2 31733477-hd.flv
Zostaną utworzone 2 pliki z obrazem:
31733477-hd_track1.h264
oraz z dźwiękiem:
31733477-hd_track2.aac
Ostatnim krokiem jest zapisanie powyższych ścieżek w pliku MP4:
MP4Box -add 31733477-hd_track1.h264 -add 31733477-hd_track2.aac -isma 31733477-hd.mp4
Cała procedura trwa kilka sekund, a obraz i dźwięk pozostają nienaruszone. Plik wynikowy natomiast jest w pełni kompatybilny m.in. z iPhone czy iPadem.