====== MPEG DASH ====== "**Dynamic Adaptive Streaming over HTTP (DASH)**, also known as MPEG-DASH, is an adaptive bitrate streaming technique that enables high quality streaming of media content over the Internet delivered from conventional HTTP web servers" [[https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP]] ===== Standard ===== * [[http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip]] ===== Software support ===== ==== FFmpeg ==== * **dash**: DASH muxer, kann nur MP4 muxen, ist mit den AdaptatioSets auch wenig flexibel * wird in der Dokumentation nicht erwähnt * Datei: dashenc.c * **webm_chunk** und **webm_dash_manifest** * Manifest Erzeugung und Chunking sind getrennt * Manifest wird nicht aktualisiert, wenn dann nur über externen Prozess * Datei: webm_chunk.c und webmdashenc.c * Patches für ffmpeg WebM DASH Support basierend auf libav-Patches: (Stand 02.03.2017) * {{:public:broadcast:projekte:dash-ffmpeg-2.8.10-20170203.patch|Patch gegen Git Tag "n2.8.10"}} * {{:public:broadcast:projekte:dash-ffmpeg-3.2-20170203.patch|Patch gegen Branch "release/3.2"}} (HEAD: 83269fd1) * {{:public:broadcast:projekte:dash-ffmpeg-master-20170203.patch|Patch gegen Git master}} (HEAD: 39afd048) * alle Branches auch im public-Git: [[https://stash.fem.tu-ilmenau.de/scm/broadcast/ffmpeg.git]] ([[https://stash.fem.tu-ilmenau.de/projects/BROADCAST/repos/ffmpeg/|Git-Web]]) ==== Libav ==== * bisher Webm DASH support (webm_chunk/webm_dash_manifest nur in ffmpeg) * dashenc etwas älter, etwas weniger Patches als bei ffmpeg * Originalautor vom Muxer is hier aktiv, mit dessen Hilfe wurden die Patches verbessert * Patches wurden am 27. bzw. 30.01.2017 in den Master-Branch aufgenommen ===== Verbesserungen einreichen ===== Upstream (libav): * Flexibilität bzgl. AdaptationSets ähnlich/besser wie bei webmdashenc * MP4 und Webm mit einem Muxer möglich TODO: * weitere Features aus dem Standard hinzufügen * Subtitles * rausfinden ob/wie man zur Laufzeit Subtitles in ffmpeg reinbekommt * Reporting