Czym dokładnie jest Fragmented mp4 (fMP4)? Czym się różni od zwykłego mp4?
Media Source Extension (MSE) wymaga fragmentacji mp4 do odtwarzania w przeglądarce.
1 answers
Fragmentaryczne MP4 zawiera szereg segmentów, które mogą być żądane indywidualnie, jeśli twój serwer obsługuje żądania zakresu bajtów.
Pudełka aka Atomy
Wszystkie pliki MP4 używają formatu zorientowanego obiektowo, który zawiera pola aka Atomy.
Możesz wyświetlić reprezentację pól w MP4 za pomocą narzędzia online, takiego jak Mp4 Parser lub jeśli używasz systemu Windows, MP4 Explorer. Porównajmy normalny MP4 z takim, który jest fragmentacja:
Niefragmentowane MP4
Ten zrzut ekranu (z Mp4 Parser) pokazuje plik MP4, który nie został fragmentowany i po prostu ma jedno ogromne pole mdat
(dane filmu).
Gdybyśmy budowali odtwarzacz wideo, który obsługuje adaptive bitrate, być może będziemy musieli znać pozycję bajtów znaku 10 S w pliku 0,5 MB / s i 1 MB / s W celu przełączania źródła wideo między tymi dwoma plikami w tym momencie. Określenie tego dokładnego pozycja bajtów w obrębie jednego masywnego mdat
w każdym pliku nie jest trywialna.
Fragmented MP4
Ten zrzut ekranu pokazuje fragment MP4, który został podzielony za pomocą MP4Box z profilem onDemand
.
Zauważysz sidx
i serię moof
+mdat
pudełka. sidx
jest indeksem segmentu i przechowuje metadane dokładnych lokalizacji zakresu bajtówmoof
+mdat
segmenty.
Zasadniczo można niezależnie załaduj sidx
(jego zakres bajtów zostanie zdefiniowany w dołączonym pliku deskryptora prezentacji multimedialnej .mpd
), a następnie wybierz segmenty, które chcesz następnie załadować i dodać do MSE SourceBuffer.
Co ważne, każdy segment jest tworzony w wybranym przez Ciebie przedziale czasowym (np. co 5 sekund), dzięki czemu segmenty mogą mieć wyrównanie czasowe między plikami o różnych przepływnościach, co ułatwia dostosowanie przepływności podczas odtwarzania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-08 01:20:04