Commit fe5e6e34 authored by Martin Storsjö's avatar Martin Storsjö

lavf: Add an MPEG-DASH ISOFF segmenting muxer

This is mostly to serve as a reference example on how to segment
the output from the mp4 muxer, capable of writing the segment
list in four different ways:
- SegmentTemplate with SegmentTimeline
- SegmentTemplate with implicit segments
- SegmentList with individual files
- SegmentList with one single file per track, and byte ranges

The muxer is able to serve live content (with optional windowing)
or create a static segmented MPD.

In advanced cases, users will probably want to do the segmenting
in their own application code.
Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent 2ded5737
...@@ -6,7 +6,7 @@ version <next>: ...@@ -6,7 +6,7 @@ version <next>:
- HEVC/H.265 RTP payload format (draft v6) packetizer and depacketizer - HEVC/H.265 RTP payload format (draft v6) packetizer and depacketizer
- avplay now exits by default at the end of playback - avplay now exits by default at the end of playback
- XCB-based screen-grabber - XCB-based screen-grabber
- creating DASH compatible fragmented MP4 - creating DASH compatible fragmented MP4, MPEG-DASH segmenting muxer
version 11: version 11:
......
...@@ -2039,6 +2039,7 @@ avi_muxer_select="riffenc" ...@@ -2039,6 +2039,7 @@ avi_muxer_select="riffenc"
avisynth_demuxer_deps="avisynth" avisynth_demuxer_deps="avisynth"
avisynth_demuxer_select="riffdec" avisynth_demuxer_select="riffdec"
caf_demuxer_select="riffdec" caf_demuxer_select="riffdec"
dash_muxer_select="mp4_muxer"
dirac_demuxer_select="dirac_parser" dirac_demuxer_select="dirac_parser"
dv_demuxer_select="dvprofile" dv_demuxer_select="dvprofile"
dv_muxer_select="dvprofile" dv_muxer_select="dvprofile"
......
...@@ -91,6 +91,7 @@ OBJS-$(CONFIG_CAVSVIDEO_MUXER) += rawenc.o ...@@ -91,6 +91,7 @@ OBJS-$(CONFIG_CAVSVIDEO_MUXER) += rawenc.o
OBJS-$(CONFIG_CDG_DEMUXER) += cdg.o OBJS-$(CONFIG_CDG_DEMUXER) += cdg.o
OBJS-$(CONFIG_CDXL_DEMUXER) += cdxl.o OBJS-$(CONFIG_CDXL_DEMUXER) += cdxl.o
OBJS-$(CONFIG_CRC_MUXER) += crcenc.o OBJS-$(CONFIG_CRC_MUXER) += crcenc.o
OBJS-$(CONFIG_DASH_MUXER) += dashenc.o isom.o
OBJS-$(CONFIG_DAUD_DEMUXER) += dauddec.o OBJS-$(CONFIG_DAUD_DEMUXER) += dauddec.o
OBJS-$(CONFIG_DAUD_MUXER) += daudenc.o OBJS-$(CONFIG_DAUD_MUXER) += daudenc.o
OBJS-$(CONFIG_DFA_DEMUXER) += dfa.o OBJS-$(CONFIG_DFA_DEMUXER) += dfa.o
......
...@@ -88,6 +88,7 @@ void av_register_all(void) ...@@ -88,6 +88,7 @@ void av_register_all(void)
REGISTER_DEMUXER (CDG, cdg); REGISTER_DEMUXER (CDG, cdg);
REGISTER_DEMUXER (CDXL, cdxl); REGISTER_DEMUXER (CDXL, cdxl);
REGISTER_MUXER (CRC, crc); REGISTER_MUXER (CRC, crc);
REGISTER_MUXER (DASH, dash);
REGISTER_MUXDEMUX(DAUD, daud); REGISTER_MUXDEMUX(DAUD, daud);
REGISTER_DEMUXER (DFA, dfa); REGISTER_DEMUXER (DFA, dfa);
REGISTER_MUXDEMUX(DIRAC, dirac); REGISTER_MUXDEMUX(DIRAC, dirac);
......
This diff is collapsed.
...@@ -30,8 +30,8 @@ ...@@ -30,8 +30,8 @@
#include "libavutil/version.h" #include "libavutil/version.h"
#define LIBAVFORMAT_VERSION_MAJOR 56 #define LIBAVFORMAT_VERSION_MAJOR 56
#define LIBAVFORMAT_VERSION_MINOR 6 #define LIBAVFORMAT_VERSION_MINOR 7
#define LIBAVFORMAT_VERSION_MICRO 5 #define LIBAVFORMAT_VERSION_MICRO 0
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \ LIBAVFORMAT_VERSION_MINOR, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment