initial commit

This commit is contained in:
Brooke Vibber 2021-10-22 11:27:02 -07:00
commit 68691c29ad
227 changed files with 375909 additions and 0 deletions

16
all-mp4.m3u8 Normal file
View file

@ -0,0 +1,16 @@
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp09.00.10.08"
vp9-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp08.00.10.08"
vp8-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.60"
mpeg2-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6a"
mpeg1-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.20.9"
m4v-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6c"
jpeg-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a"
h264-in-mp4.m3u8

8
all-webm.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp9"
vp9-in-webm.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp8"
vp8-in-webm.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a"
h264-in-mp4.m3u8

8
audio-aac.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-aac.mp4
#EXT-X-ENDLIST

8
audio-alac.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-alac.mp4
#EXT-X-ENDLIST

8
audio-flac.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-flac.mp4
#EXT-X-ENDLIST

8
audio-mp3.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-mp3.mp3
#EXT-X-ENDLIST

8
audio-opus.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-opus.mp4
#EXT-X-ENDLIST

6
av-aac-h264.m3u8 Normal file
View file

@ -0,0 +1,6 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-aac.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,mp4a.40.02",AUDIO="a1"
h264-in-mp4.m3u8

18
av-aac-mp4.m3u8 Normal file
View file

@ -0,0 +1,18 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-aac.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
vp9-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp08.00.10.08,mp4a.40.02",AUDIO="a1"
vp8-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.61,mp4a.40.02",AUDIO="a1"
mpeg2-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6a,mp4a.40.02",AUDIO="a1"
mpeg1-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.20.9,mp4a.40.02",AUDIO="a1"
m4v-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6c,mp4a.40.02",AUDIO="a1"
jpeg-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,mp4a.40.02",AUDIO="a1"
h264-in-mp4.m3u8

14
av-aac-mpeg.m3u8 Normal file
View file

@ -0,0 +1,14 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-aac.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.61,mp4a.40.02",AUDIO="a1"
mpeg2-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6a,mp4a.40.02",AUDIO="a1"
mpeg1-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.20.9,mp4a.40.02",AUDIO="a1"
m4v-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6c,mp4a.40.02",AUDIO="a1"
jpeg-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,mp4a.40.02",AUDIO="a1"
h264-in-mp4.m3u8

6
av-aac-vp8.m3u8 Normal file
View file

@ -0,0 +1,6 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-aac.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp08.00.10.08,mp4a.40.02",AUDIO="a1"
vp8-in-mp4.m3u8

6
av-aac-vp9.m3u8 Normal file
View file

@ -0,0 +1,6 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-aac.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
vp9-in-mp4.m3u8

8
av-aac-vpx.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-aac.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
vp9-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp08.00.10.08,mp4a.40.02",AUDIO="a1"
vp8-in-mp4.m3u8

18
av-all-mp4.m3u8 Normal file
View file

@ -0,0 +1,18 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-mp3.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
vp9-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp08.00.10.08,mp4a.40.02",AUDIO="a1"
vp8-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.60,mp4a.40.02",AUDIO="a1"
mpeg2-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6a,mp4a.40.02",AUDIO="a1"
mpeg1-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.20.9,mp4a.40.02",AUDIO="a1"
m4v-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6c,mp4a.40.02",AUDIO="a1"
jpeg-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,mp4a.40.34",AUDIO="a1"
h264-in-mp4.m3u8

18
av-mp3-mp4.m3u8 Normal file
View file

@ -0,0 +1,18 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-mp3.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp09.00.10.08,mp4a.6b",AUDIO="a1"
vp9-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp08.00.10.08,mp4a.6b",AUDIO="a1"
vp8-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.60,mp4a.6b",AUDIO="a1"
mpeg2-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6a,mp4a.6b",AUDIO="a1"
mpeg1-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.20.9,mp4a.6b",AUDIO="a1"
m4v-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6c,mp4a.6b",AUDIO="a1"
jpeg-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,mp4a.6b",AUDIO="a1"
h264-in-mp4.m3u8

6
av-mp4-h264.m3u8 Normal file
View file

@ -0,0 +1,6 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="mp3-in-mp4.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,mp4a.40.34",AUDIO="a1"
h264-in-mp4.m3u8

6
av-only-h263-3gp.m3u8 Normal file
View file

@ -0,0 +1,6 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-mp3.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=352x288,FRAME-RATE=29.970,CODECS="s263"
h263-in-3gp.m3u8

6
av-only-h263-mov.m3u8 Normal file
View file

@ -0,0 +1,6 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-mp3.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=352x288,FRAME-RATE=29.970,CODECS="s263"
h263-in-mov.m3u8

6
av-only-h263-mp4.m3u8 Normal file
View file

@ -0,0 +1,6 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-mp3.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=352x288,FRAME-RATE=29.970,CODECS="s263"
h263-in-mp4.m3u8

6
av-only-h264.m3u8 Normal file
View file

@ -0,0 +1,6 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-mp3.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,mp4a.40.34",AUDIO="a1"
h264-in-mp4.m3u8

18
av-opus-mp4.m3u8 Normal file
View file

@ -0,0 +1,18 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-opus.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp09.00.10.08,mp4a.ad",AUDIO="a1"
vp9-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp08.00.10.08,mp4a.ad",AUDIO="a1"
vp8-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.60,mp4a.ad",AUDIO="a1"
mpeg2-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6a,mp4a.ad",AUDIO="a1"
mpeg1-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.20.9,mp4a.ad",AUDIO="a1"
m4v-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6c,mp4a.ad",AUDIO="a1"
jpeg-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,mp4a.ad",AUDIO="a1"
h264-in-mp4.m3u8

6
av-ts-h264.m3u8 Normal file
View file

@ -0,0 +1,6 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="mp3-in-ts.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,mp3",AUDIO="a1"
h264-in-mp4.m3u8

8
av-vpx-webm.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-aac.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp9",AUDIO="a1"
vp9-in-webm.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp8",AUDIO="a1"
vp8-in-webm.m3u8

8
av-vpx2-webm.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-aac.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
vp9-in-webm.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp08.00.10.08,mp4a.40.02",AUDIO="a1"
vp8-in-webm.m3u8

View file

@ -0,0 +1,14 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="caminandes-llamigos.webm.audio.aac.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
caminandes-llamigos.webm.1080p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
caminandes-llamigos.webm.720p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=875000,RESOLUTION=854x480,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
caminandes-llamigos.webm.480p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
caminandes-llamigos.webm.360p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=275000,RESOLUTION=426x240,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
caminandes-llamigos.webm.240p.vp9.pass2.m3u8

View file

@ -0,0 +1,18 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="caminandes-llamigos.webm.audio.mp3.m3u8"
# mp4a.40.34 is for raw mp3
# mp4a.6b ?
# mp3 ?
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.1080p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.720p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=875000,RESOLUTION=854x480,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.480p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.360p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=275000,RESOLUTION=426x240,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.240p.vp9.pass2.m3u8

View file

@ -0,0 +1,18 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="caminandes-llamigos.webm.audio.mp3.m3u8"
# mp4a.40.34 is for raw mp3
# mp4a.6b ?
# mp3 ?
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp3",AUDIO="a1"
caminandes-llamigos.webm.1080p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp3",AUDIO="a1"
caminandes-llamigos.webm.720p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=875000,RESOLUTION=854x480,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp3",AUDIO="a1"
caminandes-llamigos.webm.480p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp3",AUDIO="a1"
caminandes-llamigos.webm.360p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=275000,RESOLUTION=426x240,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp3",AUDIO="a1"
caminandes-llamigos.webm.240p.vp9.pass2.m3u8

View file

@ -0,0 +1,14 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="caminandes-llamigos.webm.audio.vorbis.mp4.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,FRAME-RATE=24.0,CODECS="vp09.00.10.08,vorbis",AUDIO="a1"
caminandes-llamigos.webm.1080p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,FRAME-RATE=24.0,CODECS="vp09.00.10.08,vorbis",AUDIO="a1"
caminandes-llamigos.webm.720p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=875000,RESOLUTION=854x480,FRAME-RATE=24.0,CODECS="vp09.00.10.08,vorbis",AUDIO="a1"
caminandes-llamigos.webm.480p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360,FRAME-RATE=24.0,CODECS="vp09.00.10.08,vorbis",AUDIO="a1"
caminandes-llamigos.webm.360p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=275000,RESOLUTION=426x240,FRAME-RATE=24.0,CODECS="vp09.00.10.08,vorbis",AUDIO="a1"
caminandes-llamigos.webm.240p.vp9.pass2.m3u8

View file

@ -0,0 +1,12 @@
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,FRAME-RATE=24.0,CODECS="vp09.00.10.08"
caminandes-llamigos.webm.1080p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,FRAME-RATE=24.0,CODECS="vp09.00.10.08"
caminandes-llamigos.webm.720p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=875000,RESOLUTION=854x480,FRAME-RATE=24.0,CODECS="vp09.00.10.08"
caminandes-llamigos.webm.480p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360,FRAME-RATE=24.0,CODECS="vp09.00.10.08"
caminandes-llamigos.webm.360p.vp9.pass2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=275000,RESOLUTION=426x240,FRAME-RATE=24.0,CODECS="vp09.00.10.08"
caminandes-llamigos.webm.240p.vp9.pass2.m3u8

8
fallback-jpeg.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio-aac.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
vp9-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6c,mp4a.40.02",AUDIO="a1"
jpeg-in-mp4.m3u8

29
fallback.html Normal file
View file

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>HLS WebM test with codec</title>
</head>
<body>
<h1>HLS WebM test with codec</h1>
<p>The video will try to load an HLS containing a VP9-in-MP4 variant, with AAC audio, with no fallback:</p>
<video id=hls1 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=av-aac-vp9.m3u8>
<source type="video/webm; codecs=&quot;vp8, vorbis&quot;" src=polyphon-vp8-vorbis.webm>
</video>
<p id=err></p>
<script>
let codes = {
[MediaError.MEDIA_ERR_ABORTED]: 'MEDIA_ERR_ABORTED',
[MediaError.MEDIA_ERR_NETWORK]: 'MEDIA_ERR_NETWORK',
[MediaError.MEDIA_ERR_DECODE]: 'MEDIA_ERR_DECODE',
[MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED]: 'MEDIA_ERR_SRC_NOT_SUPPORTED',
};
hls1.addEventListener('error', function() {
let {code, message} = this.error;
let codeName = codes[code];
err.textContent = `${code} ${codeName}: ${message}`;
});
</script>
</body>
</html>

78
flat.html Normal file
View file

@ -0,0 +1,78 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Flat VP9/WebM test</title>
</head>
<body>
<h1>Flat WebM test</h1>
<p>This video will try to load a flat file containing VP9/Opus or VP8/Vorbis in WebM, or an h264/AAC fallback:</p>
<video id=flat controls width=640 height=360>
<source type="video/webm; codecs=&quot;vp9, opus&quot;" src=polyphon-vp9-opus.webm>
<source type="video/webm; codecs=&quot;vp8, vorbis&quot;" src=polyphon-vp8-vorbis.webm>
<source type="video/mp4; codecs=&quot;avc1.640032, mp4a.40&quot;" src=polyphon-h264-aac.mp4>
</video>
<p>This one will try VP9/AAC in MP4, or an h264/AAC fallback:</p>
<video id=flat2 controls width=640 height=360>
<source type="video/mp4; codecs=&quot;vp09.00.10.08, mp4a.40&quot;" src=polyphon-vp9-aac.mp4>
<source type="video/mp4; codecs=&quot;avc1.640032, mp4a.40&quot;" src=polyphon-h264-aac.mp4>
</video>
<p>This one will be h264 only:</p>
<video id=flat3 controls width=640 height=360>
<source type="video/mp4; codecs=&quot;avc1.640032, mp4a.40&quot;" src=polyphon-h264-aac.mp4>
</video>
<p>This one will be VP9-in-MP4 only but not specify codecs:</p>
<video id=flat4 controls width=640 height=360>
<source type="video/mp4" src=polyphon-vp9-aac.mp4>
</video>
<p>This one will be h264 only but not specify codecs:</p>
<video id=flat5 controls width=640 height=360>
<source type="video/mp4" src=polyphon-h264-aac.mp4>
</video>
<h1>Hail Marys</h1>
<p>VP8 in MP4, no markings:</p>
<video id=flat6 controls width=640 height=360>
<source type="video/mp4" src=polyphon-vp8.mp4>
</video>
<p>H.263 in MP4, no markings:</p>
<video id=flat7 controls width=640 height=360>
<source type="video/mp4" src=polyphon-h263.mp4>
</video>
<p>H.263 in mov, no markings:</p>
<video id=flat8 controls width=640 height=360>
<source type="video/quicktime" src=polyphon-h263.mov>
</video>
<p>H.263 in 3gp, no markings:</p>
<video id=flat9 controls width=640 height=360>
<source type="video/3gpp" src=polyphon-h263.3gp>
</video>
<p>MPEG-2 in MP4, no markings:</p>
<video id=flat10 controls width=640 height=360>
<source type="video/mp4" src=polyphon-mpeg2.mp4>
</video>
<p>MPEG-1 in MP4, no markings:</p>
<video id=flat11 controls width=640 height=360>
<source type="video/mp4" src=polyphon-mpeg1.mp4>
</video>
<p>MPEG-4 in MP4, no markings:</p>
<video id=flat12 controls width=640 height=360>
<source type="video/mp4" src=polyphon-m4v.mp4>
</video>
</body>
</html>

8
h263-in-3gp.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-h263.3gp
#EXT-X-ENDLIST

8
h263-in-mov.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-h263.mov
#EXT-X-ENDLIST

8
h263-in-mp4.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-h263.mp4
#EXT-X-ENDLIST

8
h264-in-mp4.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56
polyphon-h264.mp4
#EXT-X-ENDLIST

90
index.html Normal file
View file

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>HLS WebM test</title>
</head>
<body>
<h1>HLS WebM test</h1>
<p id=hls>Checking HLS support...</p>
<p id=mse>Checking MSE support...</p>
<p id=webm>Checking flat WebM VP8 / Vorbis support...</p>
<p id=webm2>Checking flat WebM generic support...</p>
<p id=wasm>Checking WebAssembly support...</p>
<h2>Caminandes - Llamigos</h2>
<p>HLS with AAC audio and VP9-in-MP4 at several resolutions:</p>
<video id=hls1 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=llamigos-vp9-aac.m3u8>
</video>
<p>HLS with MP3 audio and VP9-in-MP4 at several resolutions:</p>
<video id=hls1b controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=llamigos-vp9-mp3.m3u8?>
</video>
<p>HLS with no audio and VP9-in-MP4 at several resolutions:</p>
<video id=hls1c controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=llamigos-vp9.m3u8>
</video>
<h2>Short polyphon test</h2>
<p>HLS with AAC audio and VP9, VP8, and H.264 video:</p>
<video id=hls2 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=av-aac-mp4.m3u8>
</video>
<p>Same, with a flat WebM fallback source:</p>
<video id=hls3 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=av-aac-mp4.m3u8>
<source type="video/webm" src=polyphon-vp8-vorbis.webm>
</video>
<script>
if (hls1.canPlayType('application/vnd.apple.mpegurl')) {
hls.textContent = 'native HLS playback supported';
hls.style.color = 'green';
} else {
hls.textContent = 'no native HLS';
hls.style.color = 'red';
}
if (typeof MediaSource == 'function') {
if (MediaSource.isTypeSupported('video/mp4; codecs="vp09.00.10.08"') &&
MediaSource.isTypeSupported('audio/mp4; codecs="mp4a.40.02"')) {
mse.textContent = 'MSE supports VP9 & AAC-LC in MP4';
mse.style.color = 'green';
} else {
mse.textContent = 'MSE doesn\'t support one of VP9 or AAC in MP4';
mse.style.color = 'orange';
}
} else {
mse.textContent = 'MSE not supported';
mse.style.color = 'red';
}
if (hls2.canPlayType('video/webm')) {
webm.textContent = 'flat WebM generic supported';
webm.style.color = 'green';
} else {
webm.textContent = 'flat WebM generic not supported';
webm.style.color = 'red';
}
if (hls2.canPlayType('video/webm; codecs="vp8, vorbis"')) {
webm2.textContent = 'flat WebM VP8/Vorbis supported';
webm2.style.color = 'green';
} else {
webm2.textContent = 'flat WebM VP8/Vorbis not supported';
webm2.style.color = 'red';
}
if (typeof WebAssembly == 'object') {
wasm.textContent = 'WebAssembly supported';
wasm.style.color = 'green';
} else {
wasm.textContent = 'no WebAssembly support';
wasm.style.color = 'red';
}
</script>
</body>
</html>

8
jpeg-in-mov.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-jpeg.mov
#EXT-X-ENDLIST

8
jpeg-in-mp4.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-jpeg.mp4
#EXT-X-ENDLIST

8
jpeg-in-ts.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-jpeg.ts
#EXT-X-ENDLIST

34
jpeg.html Normal file
View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>HLS WebM test with JPEG</title>
</head>
<body>
<h1>HLS WebM test with JPEG</h1>
<p>The video will try to load an HLS containing a VP9-in-MP4 variant, with AAC audio, with JPEG-in-MP4 fallback:</p>
<video id=hls1 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=fallback-jpeg.m3u8>
</video>
<p>HLS containing JPEG-in-MP4, with AAC audio:</p>
<video id=hls2 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=only-jpeg.m3u8>
</video>
<p>HLS containing JPEG-in-MOV, with AAC audio:</p>
<video id=hls3 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=only-jpeg-mov.m3u8>
</video>
<p>Flat JPEG-in-MP4:</p>
<video id=flat1 controls width=640 height=360>
<source type="video/mp4; codecs=&quot;jpeg&quot;" src=polyphon-jpeg.mp4>
</video>
<p>Flat JPEG-in-MOV:</p>
<video id=flat2 controls width=640 height=360>
<source type="video/quicktime; codecs=&quot;jpeg&quot;" src=polyphon-jpeg.mov>
</video>
<p>Flat JPEG-in-MOV, with AAC audio:</p>
<video id=flat3 controls width=640 height=360>
<source type="video/quicktime; codecs=&quot;jpeg&quot;" src=polyphon-jpeg-aac.mov>
</video>
</body>
</html>

14
llamigos-vp9-aac.m3u8 Normal file
View file

@ -0,0 +1,14 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="caminandes-llamigos.webm.audio.aac.mp4.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
caminandes-llamigos.webm.1080p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
caminandes-llamigos.webm.720p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=875000,RESOLUTION=854x480,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
caminandes-llamigos.webm.480p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
caminandes-llamigos.webm.360p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=275000,RESOLUTION=426x240,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.02",AUDIO="a1"
caminandes-llamigos.webm.240p.vp9.pass2.mp4.m3u8

18
llamigos-vp9-mp3.m3u8 Normal file
View file

@ -0,0 +1,18 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="caminandes-llamigos.webm.audio.mp3.mp4.m3u8"
# mp4a.40.34 is for raw mp3
# mp4a.6b ?
# mp3 ?
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.1080p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.720p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=875000,RESOLUTION=854x480,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.480p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.360p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=275000,RESOLUTION=426x240,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.240p.vp9.pass2.mp4.m3u8

18
llamigos-vp9-mp3b.m3u8 Normal file
View file

@ -0,0 +1,18 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="caminandes-llamigos.webm.audio.mp3.mp4.m3u8"
# mp4a.40.34 is for raw mp3
# mp4a.6b ?
# mp3 ?
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.6b",AUDIO="a1"
caminandes-llamigos.webm.1080p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.6b",AUDIO="a1"
caminandes-llamigos.webm.720p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=875000,RESOLUTION=854x480,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.6b",AUDIO="a1"
caminandes-llamigos.webm.480p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.6b",AUDIO="a1"
caminandes-llamigos.webm.360p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=275000,RESOLUTION=426x240,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.6b",AUDIO="a1"
caminandes-llamigos.webm.240p.vp9.pass2.mp4.m3u8

18
llamigos-vp9-mp3c.m3u8 Normal file
View file

@ -0,0 +1,18 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="caminandes-llamigos.webm.audio.mp3.mp4.m3u8"
# mp4a.40.34 is for raw mp3
# mp4a.6b ?
# mp3 ?
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp3",AUDIO="a1"
caminandes-llamigos.webm.1080p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp3",AUDIO="a1"
caminandes-llamigos.webm.720p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=875000,RESOLUTION=854x480,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp3",AUDIO="a1"
caminandes-llamigos.webm.480p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp3",AUDIO="a1"
caminandes-llamigos.webm.360p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=275000,RESOLUTION=426x240,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp3",AUDIO="a1"
caminandes-llamigos.webm.240p.vp9.pass2.mp4.m3u8

18
llamigos-vp9-mp3d.m3u8 Normal file
View file

@ -0,0 +1,18 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="caminandes-llamigos.webm.audio.mp3.m3u8"
# mp4a.40.34 is for raw mp3
# mp4a.6b ?
# mp3 ?
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.1080p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.720p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=875000,RESOLUTION=854x480,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.480p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.360p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=275000,RESOLUTION=426x240,FRAME-RATE=24.0,CODECS="vp09.00.10.08,mp4a.40.34",AUDIO="a1"
caminandes-llamigos.webm.240p.vp9.pass2.mp4.m3u8

14
llamigos-vp9-vorbis.m3u8 Normal file
View file

@ -0,0 +1,14 @@
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="a1",NAME="English",LANGUAGE="en-US",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="caminandes-llamigos.webm.audio.vorbis.mp4.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,FRAME-RATE=24.0,CODECS="vp09.00.10.08,vorbis",AUDIO="a1"
caminandes-llamigos.webm.1080p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,FRAME-RATE=24.0,CODECS="vp09.00.10.08,vorbis",AUDIO="a1"
caminandes-llamigos.webm.720p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=875000,RESOLUTION=854x480,FRAME-RATE=24.0,CODECS="vp09.00.10.08,vorbis",AUDIO="a1"
caminandes-llamigos.webm.480p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=375000,RESOLUTION=640x360,FRAME-RATE=24.0,CODECS="vp09.00.10.08,vorbis",AUDIO="a1"
caminandes-llamigos.webm.360p.vp9.pass2.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=275000,RESOLUTION=426x240,FRAME-RATE=24.0,CODECS="vp09.00.10.08,vorbis",AUDIO="a1"
caminandes-llamigos.webm.240p.vp9.pass2.mp4.m3u8

12
llamigos-vp9.m3u8 Normal file
View file

@ -0,0 +1,12 @@
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=5500000,RESOLUTION=1920x1080,FRAME-RATE=24.0,CODECS="vp09.00.10.08"
caminandes-llamigos.webm.1080p.vp9.fast.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3000000,RESOLUTION=1280x720,FRAME-RATE=24.0,CODECS="vp09.00.10.08"
caminandes-llamigos.webm.720p.vp9.fast.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1000000,RESOLUTION=854x480,FRAME-RATE=24.0,CODECS="vp09.00.10.08"
caminandes-llamigos.webm.480p.vp9.fast.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=640x360,FRAME-RATE=24.0,CODECS="vp09.00.10.08"
caminandes-llamigos.webm.360p.vp9.fast.mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=300000,RESOLUTION=426x240,FRAME-RATE=24.0,CODECS="vp09.00.10.08"
caminandes-llamigos.webm.240p.vp9.fast.mp4.m3u8

8
m4v-in-mp4.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-m4v.mp4
#EXT-X-ENDLIST

17
make-flat.sh Normal file
View file

@ -0,0 +1,17 @@
ffmpeg \
-i caminandes-llamigos.webm \
-f webm \
-acodec libvorbis \
-ar 44100 \
-ac 2 \
-b:a 112k \
-vcodec libvpx \
-pix_fmt yuv420p \
-r 24 \
-quality good \
-cpu-used 2 \
-vf scale=640:360 \
-b:v 320k \
-g 240 \
-keyint_min 240 \
caminandes-llamigos.webm.flat.webm

49
make-hls.sh Normal file
View file

@ -0,0 +1,49 @@
MOVFLAGS="-movflags +frag_keyframe+empty_moov+default_base_moof+faststart"
BITRATE_HI="-b:v 3840k"
BITRATE_LO="-b:v 2560k"
VIDEO_H264="-vcodec h264 $BITRATE_HI"
VIDEO_H263="-vcodec h263 -b:v 1280k"
VIDEO_JPEG="-vcodec mjpeg"
VIDEO_VP8="-vcodec libvpx $BITRATE_HI"
VIDEO_VP9="-vcodec libvpx-vp9 -row-mt 1 $BITRATE_LO"
AUDIO_VORBIS="-acodec libvorbis -ac 2 -ar 44100 -vb 128k"
AUDIO_OPUS="-acodec libopus -ac 2 -ar 48000 -vb 128k"
AUDIO_AAC="-ac 2 -ar 44100 -vb 128k"
AUDIO_MP3="-acodec libmp3lame -ac 2 -ar 44100 -vb 128k"
ffmpeg -i polyphon.ogv -vn $AUDIO_MP3 -y polyphon-mp3.mp3
ffmpeg -i polyphon.ogv -vn $AUDIO_MP3 $MOVFLAGS -y polyphon-mp3.mp4
ffmpeg -i polyphon.ogv -vn $AUDIO_AAC $MOVFLAGS -y polyphon-aac.mp4
ffmpeg -i polyphon.ogv -vn $AUDIO_OPUS -y polyphon-opus.webm
ffmpeg -i polyphon.ogv -vn $AUDIO_OPUS $MOVFLAGS -y polyphon-opus.mp4
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='h264.mp4':fontsize=72:fontcolor=red" $VIDEO_H264 $MOVFLAGS -y polyphon-h264.mp4
VIDEO_JPEG="-vcodec mjpeg"
MOVFLAGS="-movflags +frag_keyframe+empty_moov+default_base_moof+faststart"
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='jpeg.mp4':fontsize=72:fontcolor=magenta, scale=640:360" $VIDEO_JPEG $MOVFLAGS -y polyphon-jpeg.mp4
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='jpeg.mov':fontsize=72:fontcolor=magenta, scale=640:360" $VIDEO_JPEG $MOVFLAGS -y polyphon-jpeg.mov
VIDEO_H263="-vcodec h263 -b:v 1280k"
VIDEO_H263_PLUS="-vcodec h263p -b:v 1280k"
LD_LIBRARY_PATH=/usr/local/ffmpeg/lib /usr/local/ffmpeg/bin/ffmpeg -i polyphon.ogv -an -vf "drawtext=text='h263.mp4':fontsize=72:fontcolor=brown, scale=352:288" $VIDEO_H263 $MOVFLAGS -y polyphon-h263.mp4
LD_LIBRARY_PATH=/usr/local/ffmpeg/lib /usr/local/ffmpeg/bin/ffmpeg -i polyphon.ogv -an -vf "drawtext=text='h263plus.mp4':fontsize=72:fontcolor=brown, scale=352:288" $VIDEO_H263_PLUS $MOVFLAGS -y polyphon-h263plus.mp4
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='h263.mov':fontsize=72:fontcolor=brown, scale=352:288" $VIDEO_H263 $MOVFLAGS -y polyphon-h263.mov
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='h263.3gp':fontsize=72:fontcolor=brown, scale=352:288" $VIDEO_H263 $MOVFLAGS -y polyphon-h263.3gp
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='m4v.mp4':fontsize=72:fontcolor=brown" -vcodec mpeg4 $BITRATE_HI $MOVFLAGS -y polyphon-m4v.mp4
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='mpeg2.mp4':fontsize=72:fontcolor=brown" -vcodec mpeg2video $BITRATE_HI $MOVFLAGS -y polyphon-mpeg2.mp4
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='mpeg1.mp4':fontsize=72:fontcolor=brown" -vcodec mpeg1video $BITRATE_HI $MOVFLAGS -y polyphon-mpeg1.mp4
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='vp8.webm':fontsize=72:fontcolor=cyan" $VIDEO_VP8 -y polyphon-vp8.webm
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='vp9.webm':fontsize=72:fontcolor=green" $VIDEO_VP9 -y polyphon-vp9.webm
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='vp9.mp4':fontsize=72:fontcolor=blue" $VIDEO_VP9 $MOVFLAGS -y polyphon-vp9.mp4
/usr/local/ffmpeg/bin/ffmpeg -i polyphon.ogv -an -vf "drawtext=text='vp8.mp4':fontsize=72:fontcolor=purple" $VIDEO_VP8 $MOVFLAGS -y polyphon-vp8.mp4
ffmpeg -i polyphon.ogv $AUDIO_AAC -vf "drawtext=text='h264-aac.mp4':fontsize=72:fontcolor=orange" $VIDEO_H264 $MOVFLAGS -y polyphon-h264-aac.mp4
ffmpeg -i polyphon.ogv $AUDIO_AAC -vf "drawtext=text='jpeg-aac.mov':fontsize=72:fontcolor=magenta" $VIDEO_JPEG $MOVFLAGS -y polyphon-jpeg-aac.mov
ffmpeg -i polyphon.ogv $AUDIO_AAC -vf "drawtext=text='vp9-aac.mp4':fontsize=72:fontcolor=purple" $VIDEO_VP9 $MOVFLAGS -y polyphon-vp9-aac.mp4
ffmpeg -i polyphon.ogv $AUDIO_VORBIS -vf "drawtext=text='vp8-vorbis.webm':fontsize=72:fontcolor=darkcyan" $VIDEO_VP8 -y polyphon-vp8-vorbis.webm
ffmpeg -i polyphon.ogv $AUDIO_OPUS -vf "drawtext=text='vp9-opus.webm':fontsize=72:fontcolor=darkgreen" $VIDEO_VP9 -y polyphon-vp9-opus.webm

27
mp3 audio notes.md Normal file
View file

@ -0,0 +1,27 @@
timestamp id3 tag needed to avoid the overlap delay:
https://www.wowza.com/community/t/id3-priv-tag-in-aac-chunks-for-hls-streaming-is-it-necessary/34473
https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming#section-6.2.4
https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming#section-3.4
A Packed Audio Segment has no Media Initialization Section.
Each Packed Audio Segment MUST signal the timestamp of its first
sample with an ID3 PRIV tag [ID3] at the beginning of the segment.
The ID3 PRIV owner identifier MUST be
"com.apple.streaming.transportStreamTimestamp". The ID3 payload MUST
be a 33-bit MPEG-2 Program Elementary Stream timestamp expressed as a
big-endian eight-octet number, with the upper 31 bits set to zero.
Clients SHOULD NOT play Packed Audio Segments without this ID3 tag.
mp3 options:
-write_xing 0/1
-id3v2_version 3
-write_id3v1 0/1
https://patchwork.ffmpeg.org/project/ffmpeg/patch/20180112211305.5812-1-rshaffer@tunein.com/
patch for ffmpeg to add ability to set/retrieve priv tags

8
mp3-in-mp4.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-mp3.mp4
#EXT-X-ENDLIST

8
mp3-in-ts.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-mp3.ts
#EXT-X-ENDLIST

29
mp3.html Normal file
View file

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>HLS WebM test with codec</title>
</head>
<body>
<h1>HLS WebM test with codec</h1>
<p>The video will try to load an HLS containing VP9-in-MP4 and fallback variants, with Opus audio:</p>
<video id=hls1 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=av-mp3-mp4.m3u8>
</video>
<p id=err></p>
<script>
let codes = {
[MediaError.MEDIA_ERR_ABORTED]: 'MEDIA_ERR_ABORTED',
[MediaError.MEDIA_ERR_NETWORK]: 'MEDIA_ERR_NETWORK',
[MediaError.MEDIA_ERR_DECODE]: 'MEDIA_ERR_DECODE',
[MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED]: 'MEDIA_ERR_SRC_NOT_SUPPORTED',
};
hls1.addEventListener('error', function() {
let {code, message} = this.error;
let codeName = codes[code];
err.textContent = `${code} ${codeName}: ${message}`;
});
</script>
</body>
</html>

8
mpeg1-in-mp4.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-mpeg1.mp4
#EXT-X-ENDLIST

8
mpeg2-in-mp4.m3u8 Normal file
View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:45
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:40.56,
polyphon-mpeg2.mp4
#EXT-X-ENDLIST

12
notes.md Normal file
View file

@ -0,0 +1,12 @@
floating player
like pop-out picture in picture
in your web page
let it go sticky when you scroll up/down
minify to hide
increase size at a click
fullscreen also easy
make it simple to read the article while listening to a music or running a video in the corner that's relevant

176
ogv.html Normal file
View file

@ -0,0 +1,176 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>HLS WebM test</title>
<link rel=stylesheet type=text/css href=video-js/video-js.css>
</head>
<body>
<h1>HLS WebM test</h1>
<p id=hls>Checking HLS support...</p>
<p id=mse>Checking MSE support...</p>
<p id=webm>Checking flat WebM VP8 / Vorbis support...</p>
<p id=webm2>Checking flat WebM generic support...</p>
<p id=wasm>Checking WebAssembly support...</p>
<h2>Caminandes - Llamigos</h2>
<p>HLS with AAC audio and VP9-in-MP4 at several resolutions:</p>
<video id=hls0 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=llamigos-vp9-aac.m3u8>
<source type=video/webm src=caminandes-llamigos.webm.flat.webm>
</video>
<p>HLS with MP3 audio (mp4a.40.34) and VP9-in-MP4 at several resolutions:</p>
<video id=hls1 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=llamigos-vp9-mp3.m3u8>
<source type=video/webm src=caminandes-llamigos.webm.flat.webm>
</video>
<p>HLS with MP3 audio (mp4a.6b) and VP9-in-MP4 at several resolutions:</p>
<video id=hls2 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=llamigos-vp9-mp3b.m3u8>
<source type=video/webm src=caminandes-llamigos.webm.flat.webm>
</video>
<p>HLS with MP3 audio (mp3) and VP9-in-MP4 at several resolutions:</p>
<video id=hls3 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=llamigos-vp9-mp3c.m3u8>
<source type=video/webm src=caminandes-llamigos.webm.flat.webm>
</video>
<p>HLS with elementary MP3 audio (mp4a.40.34) and VP9-in-MP4 at several resolutions:</p>
<video id=hls4 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=llamigos-vp9-mp3d.m3u8>
<source type=video/webm src=caminandes-llamigos.webm.flat.webm>
</video>
<script>
if (hls1.canPlayType('application/vnd.apple.mpegurl')) {
hls.textContent = 'native HLS playback supported';
hls.style.color = 'green';
} else {
hls.textContent = 'no native HLS';
hls.style.color = 'red';
}
if (typeof MediaSource == 'function') {
if (MediaSource.isTypeSupported('video/mp4; codecs="vp09.00.10.08"') &&
MediaSource.isTypeSupported('audio/mp4; codecs="mp4a.40.02"')) {
mse.textContent = 'MSE supports VP9 & AAC-LC in MP4';
mse.style.color = 'green';
} else {
mse.textContent = 'MSE doesn\'t support one of VP9 or AAC in MP4';
mse.style.color = 'orange';
}
} else {
mse.textContent = 'MSE not supported';
mse.style.color = 'red';
}
if (hls1.canPlayType('video/webm')) {
webm.textContent = 'flat WebM generic supported';
webm.style.color = 'green';
} else {
webm.textContent = 'flat WebM generic not supported';
webm.style.color = 'red';
}
if (hls1.canPlayType('video/webm; codecs="vp8, vorbis"')) {
webm2.textContent = 'flat WebM VP8/Vorbis supported';
webm2.style.color = 'green';
} else {
webm2.textContent = 'flat WebM VP8/Vorbis not supported';
webm2.style.color = 'red';
}
if (typeof WebAssembly == 'object') {
wasm.textContent = 'WebAssembly supported';
wasm.style.color = 'green';
} else {
wasm.textContent = 'no WebAssembly support';
wasm.style.color = 'red';
}
</script>
<!--
<script src=ogvjs-1.8.4/ogv.js></script>
<script src=video-js/video.js></script>
<script src=videojs-ogvjs.js></script>
<script type=text/x-disabled>
var playerConfig = {
responsive: true,
controlBar: {
volumePanel: {
vertical: true,
inline: false
}
},
techOrder: [ 'html5' ],
html5: {}
};
var mse = (typeof MediaSource == 'function') &&
MediaSource.isTypeSupported('video/mp4; codecs="vp09.00.10.08"') &&
MediaSource.isTypeSupported('audio/mp4; codecs="mp4a.40.02"');
if (mse) {
// enable streaming plugin
playerConfig.html5.vhs = {
overrideNative: true,
useDevicePixelRatio: true
};
}
var webm = null;
for (let source of hls1.querySelectorAll('source')) {
if (source.type.startsWith('video/webm')) {
webm = source;
break;
}
}
var ogv = webm &&
!mse &&
!hls1.canPlayType(webm.type) &&
(typeof WebAssembly == 'object') &&
(typeof WebAssembly.Module == 'function');
if (ogv) {
console.log('can do ogvjs');
var base = new URL('./ogvjs-1.8.4', document.location)
console.log(base);
console.log(base.pathname);
playerConfig.ogvjs = {
base: base.pathname
};
console.log(playerConfig.ogvjs.base);
playerConfig.techOrder.push('ogvjs');
} else {
console.log('wont do ogvjs');
}
hls1.classList.add('video-js');
hls1.classList.add('vjs-default-skin');
var vjs1 = videojs(hls1, playerConfig);
vjs1.on('error', function failover() {
console.log('got error');
var error = vjs1.error();
if (error && error.code == MediaError.MEDIA_ERR_DECODE) {
console.log('saw its decode');
// HLS reports this if it can't find a codec it likes
if (webm) {
console.log('going to ' + webm.getAttribute('src'));
vjs1.src([{
src: webm.getAttribute('src'),
type: webm.getAttribute('type')
}]);
vjs1.reset();
}
}
vjs1.off('error', failover);
});
vjs1.load();
</script>
-->
</body>
</html>

21
ogvjs-1.8.4/COPYING Normal file
View file

@ -0,0 +1,21 @@
ogv.js wrapper and player code
Copyright (c) 2013-2019 Brion Vibber and other contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View file

@ -0,0 +1,23 @@
Copyright © 2018-2019, VideoLAN and dav1d authors
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -0,0 +1,28 @@
Copyright (c) 2002, Xiph.org Foundation
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name of the Xiph.org Foundation nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -0,0 +1,44 @@
Copyright 2001-2011 Xiph.Org, Skype Limited, Octasic,
Jean-Marc Valin, Timothy B. Terriberry,
CSIRO, Gregory Maxwell, Mark Borgerding,
Erik de Castro Lopo
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name of Internet Society, IETF or IETF Trust, nor the
names of specific contributors, may be used to endorse or promote
products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Opus is subject to the royalty-free patent licenses which are
specified at:
Xiph.Org Foundation:
https://datatracker.ietf.org/ipr/1524/
Microsoft Corporation:
https://datatracker.ietf.org/ipr/1914/
Broadcom Corporation:
https://datatracker.ietf.org/ipr/1526/

View file

@ -0,0 +1,28 @@
Copyright (C) 2002-2009 Xiph.org Foundation
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name of the Xiph.org Foundation nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -0,0 +1,28 @@
Copyright (c) 2002-2018 Xiph.org Foundation
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name of the Xiph.org Foundation nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -0,0 +1,13 @@
Copyright © 2010 Mozilla Foundation
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

View file

@ -0,0 +1,31 @@
Copyright (c) 2010, The WebM Project authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
* Neither the name of Google, nor the WebM Project, nor the names
of its contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.