This commit is contained in:
Brooke Vibber 2022-06-06 15:38:07 -07:00
parent 8493a4eb3c
commit 48b98f8cfb
60 changed files with 2719 additions and 0 deletions

16
.gitignore vendored Normal file
View file

@ -0,0 +1,16 @@
.DS_Store
*.webm
*.ogv
*.ogg
*.oga
*.mp4
*.m4a
*.mov
*.3gp
*.ts
*.mpg
*.mpeg
*.mp3
*.aac
*.h263
*.log

36
3gp.html Normal file
View file

@ -0,0 +1,36 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>3gp codecs test</title>
</head>
<body>
<h1>3gp codecs test</h1>
<p>H.263/AAC in 3GP: 96p</p>
<video id=flat controls width=640 height=360>
<source type="video/3gpp" src=polyphon-h263-aac-96p.3gp>
</video>
<p>H.263/AAC in 3GP: 144p</p>
<video id=flat2 controls width=640 height=360>
<source type="video/3gpp" src=polyphon-h263-aac-144p.3gp>
</video>
<p>H.263/AAC in 3GP: 288p</p>
<video id=flat controls width=640 height=360>
<source type="video/3gpp" src=polyphon-h263-aac-288p.3gp>
</video>
<p>H.263/AAC in 3GP: 576p</p>
<video id=flat controls width=640 height=360>
<source type="video/3gpp" src=polyphon-h263-aac-576p.3gp>
</video>
<p>H.263/AAC in 3GP: 1152p</p>
<video id=flat controls width=640 height=360>
<source type="video/3gpp" src=polyphon-h263-aac-1152p.3gp>
</video>
</body>
</html>

19
3gp.sh Normal file
View file

@ -0,0 +1,19 @@
#MOVFLAGS="-movflags +frag_keyframe+empty_moov+default_base_moof+faststart"
MOVFLAGS="-movflags +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_H263_PLUS="-vcodec h263p -b:v 1280k"
VIDEO_JPEG="-vcodec mjpeg"
VIDEO_VP8="-vcodec libvpx $BITRATE_HI"
VIDEO_VP9="-vcodec libvpx-vp9 -row-mt 1 $BITRATE_LO"
AUDIO_AAC="-acodec aac -ac 1 -ar 44100 -ab 112k"
ffmpeg -i polyphon.ogv -vf "drawtext=text='h263-aac-96p.3gp':fontsize=72:fontcolor=orange, scale=128:96" $VIDEO_H263 -vb 64k $AUDIO_AAC $MOVFLAGS -y polyphon-h263-aac-96p.3gp || exit 1
ffmpeg -i polyphon.ogv -vf "drawtext=text='h263-aac-144p.3gp':fontsize=72:fontcolor=brown, scale=176:144" $VIDEO_H263 -vb 384k $AUDIO_AAC $MOVFLAGS -y polyphon-h263-aac-144p.3gp || exit 1
ffmpeg -i polyphon.ogv -vf "drawtext=text='h263-aac-288p.3gp':fontsize=72:fontcolor=yellow, scale=352:288" $VIDEO_H263 -vb 2048k $AUDIO_AAC $MOVFLAGS -y polyphon-h263-aac-288p.3gp || exit 1
ffmpeg -i polyphon.ogv -vf "drawtext=text='h263-aac-576p.3gp':fontsize=72:fontcolor=red, scale=704:576" $VIDEO_H263 -vb 4096k $AUDIO_AAC $MOVFLAGS -y polyphon-h263-aac-576p.3gp || exit 1
ffmpeg -i polyphon.ogv -vf "drawtext=text='h263-aac-1152p.3gp':fontsize=72:fontcolor=violet, scale=1408:1152" $VIDEO_H263 -vb 8192k $AUDIO_AAC $MOVFLAGS -y polyphon-h263-aac-1152p.3gp || exit 1

31
3gp2.html Normal file
View file

@ -0,0 +1,31 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>3gp codecs test 2</title>
</head>
<body>
<h1>3gp codecs test 2</h1>
<p>H.263/AAC in 3GP: 1M</p>
<video id=flat controls width=640 height=360>
<source type="video/3gpp" src=polyphon-h263-aac-1m.3gp>
</video>
<p>H.263/AAC in 3GP: 2M</p>
<video id=flat2 controls width=640 height=360>
<source type="video/3gpp" src=polyphon-h263-aac-2m.3gp>
</video>
<p>H.263/AAC in 3GP: 4M</p>
<video id=flat controls width=640 height=360>
<source type="video/3gpp" src=polyphon-h263-aac-4m.3gp>
</video>
<p>H.263/AAC in 3GP: 8Mp</p>
<video id=flat controls width=640 height=360>
<source type="video/3gpp" src=polyphon-h263-aac-8m.3gp>
</video>
</body>
</html>

12
3gp2.sh Normal file
View file

@ -0,0 +1,12 @@
#MOVFLAGS="-movflags +frag_keyframe+empty_moov+default_base_moof+faststart"
MOVFLAGS="-movflags +faststart"
VIDEO_H263="-vcodec h263"
VIDEO_H263_PLUS="-vcodec h263p"
AUDIO_AAC="-acodec aac -ac 1 -ar 44100 -ab 112k"
ffmpeg -i polyphon.ogv -vf "drawtext=text='h263-aac-288p@1M.3gp':fontsize=72:fontcolor=brown, scale=352:288" $VIDEO_H263 -vb 1024k $AUDIO_AAC $MOVFLAGS -y polyphon-h263-aac-1m.3gp || exit 1
ffmpeg -i polyphon.ogv -vf "drawtext=text='h263-aac-288p@2M.3gp':fontsize=72:fontcolor=yellow, scale=352:288" $VIDEO_H263 -vb 2048k $AUDIO_AAC $MOVFLAGS -y polyphon-h263-aac-2m.3gp || exit 1
ffmpeg -i polyphon.ogv -vf "drawtext=text='h263-aac-288p@4M.3gp':fontsize=72:fontcolor=red, scale=352:288" $VIDEO_H263 -vb 4096k $AUDIO_AAC $MOVFLAGS -y polyphon-h263-aac-4m.3gp || exit 1
ffmpeg -i polyphon.ogv -vf "drawtext=text='h263-aac-288p@8M.3gp':fontsize=72:fontcolor=violet, scale=352:288" $VIDEO_H263 -vb 8192k $AUDIO_AAC $MOVFLAGS -y polyphon-h263-aac-8m.3gp || exit 1

10
all.m3u8 Normal file
View file

@ -0,0 +1,10 @@
#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="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

62
audio.html Normal file
View file

@ -0,0 +1,62 @@
<!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>AAC in MP4</p>
<video id=hls1 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=av-aac-mp4.m3u8>
</video>
<p id=err1></p>
<p>ALAC in MP4</p>
<video id=hls2 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=av-alac-mp4.m3u8>
</video>
<p id=err2></p>
<p>FLAC in MP4</p>
<video id=hls3 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=av-flac-mp4.m3u8>
</video>
<p id=err3></p>
<p>MP3 stream</p>
<video id=hls4 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=av-mp3-mp4.m3u8>
</video>
<p id=err4></p>
<p>Opus in MP4</p>
<video id=hls5 controls width=640 height=360>
<source type=application/vnd.apple.mpegurl src=av-opus-mp4.m3u8>
</video>
<p id=err5></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',
};
function errify(hls, err) {
hls.addEventListener('error', function() {
let {code, message} = this.error;
let codeName = codes[code];
err.textContent = `${code} ${codeName}: ${message}`;
});
}
errify(hls1, err1);
errify(hls2, err2);
errify(hls3, err3);
errify(hls4, err4);
errify(hls5, err5);
</script>
</body>
</html>

8
av-alac-mp4.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-alac.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp09.00.10.08,alac",AUDIO="a1"
vp9-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,alac",AUDIO="a1"
h264-in-mp4.m3u8

8
av-flac-mp4.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-flac.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp09.00.10.08,flac",AUDIO="a1"
vp9-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,flac",AUDIO="a1"
h264-in-mp4.m3u8

6
av-mp3-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.6b",AUDIO="a1"
h264-in-mp4.m3u8

6
av-mp3mp4-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,mp3",AUDIO="a1"
h264-in-mp4.m3u8

6
av-mp3mp4b-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.6b",AUDIO="a1"
h264-in-mp4.m3u8

18
av-opusb-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,opus",AUDIO="a1"
vp9-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp08.00.10.08,opus",AUDIO="a1"
vp8-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.60,opus",AUDIO="a1"
mpeg2-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6a,opus",AUDIO="a1"
mpeg1-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.20.9,opus",AUDIO="a1"
m4v-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6c,opus",AUDIO="a1"
jpeg-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,opus",AUDIO="a1"
h264-in-mp4.m3u8

18
av-opusc-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,Opus",AUDIO="a1"
vp9-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="vp08.00.10.08,Opus",AUDIO="a1"
vp8-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.60,Opus",AUDIO="a1"
mpeg2-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6a,Opus",AUDIO="a1"
mpeg1-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.20.9,Opus",AUDIO="a1"
m4v-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="mp4v.6c,Opus",AUDIO="a1"
jpeg-in-mp4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4785000,RESOLUTION=1920x1080,FRAME-RATE=29.970,CODECS="avc1.42e00a,Opus",AUDIO="a1"
h264-in-mp4.m3u8

32
booster.sh Normal file
View file

@ -0,0 +1,32 @@
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_H263_PLUS="-vcodec h263p -b:v 1280k"
VIDEO_JPEG="-vcodec mjpeg"
VIDEO_VP8="-vcodec libvpx $BITRATE_HI"
VIDEO_VP9="-vcodec libvpx-vp9 -row-mt 1 $BITRATE_LO"
AUDIO_AAC="-ac 2 -ar 44100 -vb 128k"
AUDIO_MP3="-acodec libmp3lame -ac 2 -ar 44100 -vb 128k"
AUDIO_OPUS="-acodec libopus -ac 2 -ar 48000 -vb 128k"
AUDIO_VORBIS="-acodec libvorbis -ac 2 -ar 44100 -vb 128k"
ffmpeg \
-i polyphon.ogv \
-i polyphon.ogv \
$AUDIO_MP3 \
$VIDEO_VP9 \
$BITRATE_LO \
-vf "drawtext=text='booster.mp4 (vp9)':fontsize=72:fontcolor=yellow" \
-an \
$VIDEO_JPEG \
$BITRATE_LO \
-vf "drawtext=text='booster.mp4 (jpeg)':fontsize=72:fontcolor=purple,scale=640x360" \
$MOVFLAGS \
-map 0:a:0 \
-map 0:v:0 \
-map 1:v:0 \
-y booster.mp4

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.1080p.vp9.fast.mp4",BYTERANGE="811@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5580731@811
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6749566@5581542
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7818001@12331108
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:8250184@20149109
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5902054@28399293
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6378117@34301347
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6805028@40679464
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5229470@47484492
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5362310@52713962
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5472820@58076272
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6820393@63549092
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7742815@70369485
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7635520@78112300
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6777025@85747820
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:8075025@92524845
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:570553@100599870
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.1080p.vp9.fast.mp4",BYTERANGE="781@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5552744@781
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6706746@5553525
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7852135@12260271
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:8263080@20112406
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5888883@28375486
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6320298@34264369
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6745026@40584667
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5207878@47329693
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5348026@52537571
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5357166@57885597
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6785039@63242763
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7682690@70027802
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7619020@77710492
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6757133@85329512
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:8142528@92086645
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:571147@100229173
caminandes-llamigos.webm.1080p.vp9.fast.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,10 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:0
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.1080p.vp9.pass1.mp4",BYTERANGE="775@0"
#EXTINF:0.000000,
#EXT-X-BYTERANGE:0@775
caminandes-llamigos.webm.1080p.vp9.pass1.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.1080p.vp9.pass2.mp4",BYTERANGE="811@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:4374926@811
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5379536@4375737
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5448825@9755273
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6702488@15204098
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5435943@21906586
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7216530@27342529
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7333592@34559059
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:8886755@41892651
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7308992@50779406
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5821934@58088398
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5421595@63910332
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5268136@69331927
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7314267@74600063
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7019306@81914330
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2571703@88933636
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:416865@91505339
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.1080p.vp9.pass2.mp4",BYTERANGE="781@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:4335138@781
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5479947@4335919
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5489972@9815866
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6670231@15305838
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5446607@21976069
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7173091@27422676
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7337042@34595767
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:8835604@41932809
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7270911@50768413
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5799731@58039324
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5424602@63839055
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5281174@69263657
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:7305438@74544831
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:6853241@81850269
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2547291@88703510
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:389664@91250801
caminandes-llamigos.webm.1080p.vp9.pass2.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.240p.vp9.fast.mp4",BYTERANGE="811@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:191922@811
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:179636@192733
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:260446@372369
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:297711@632815
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:194777@930526
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:214041@1125303
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:226521@1339344
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:186756@1565865
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:188458@1752621
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:208238@1941079
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:247401@2149317
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:326716@2396718
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:275864@2723434
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:270017@2999298
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:485352@3269315
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:44062@3754667
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.240p.vp9.fast.mp4",BYTERANGE="781@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:193826@781
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:180381@194607
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:269341@374988
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:277139@644329
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:192168@921468
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:210834@1113636
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:226146@1324470
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:185255@1550616
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:187703@1735871
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:203147@1923574
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:261256@2126721
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:311936@2387977
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:267218@2699913
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:294548@2967131
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:494529@3261679
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:44128@3756208
caminandes-llamigos.webm.240p.vp9.fast.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,10 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:0
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.240p.vp9.pass1.mp4",BYTERANGE="775@0"
#EXTINF:0.000000,
#EXT-X-BYTERANGE:0@775
caminandes-llamigos.webm.240p.vp9.pass1.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.240p.vp9.pass2.mp4",BYTERANGE="811@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:131264@811
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:180546@132075
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:162499@312621
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:225088@475120
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:179468@700208
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:201526@879676
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:203851@1081202
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:284047@1285053
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:229357@1569100
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:178912@1798457
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:165425@1977369
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:145424@2142794
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:213014@2288218
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:177606@2501232
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:93125@2678838
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:12524@2771963
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.240p.vp9.pass2.mp4",BYTERANGE="781@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:133935@781
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:179627@134716
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:161815@314343
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:222794@476158
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:183558@698952
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:198950@882510
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:202921@1081460
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:284147@1284381
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:231309@1568528
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:179833@1799837
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:166136@1979670
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:142527@2145806
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:213716@2288333
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:180678@2502049
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:97069@2682727
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:11763@2779796
caminandes-llamigos.webm.240p.vp9.pass2.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.360p.vp9.fast.mp4",BYTERANGE="811@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:311178@811
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:308982@311989
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:419563@620971
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:458268@1040534
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:324557@1498802
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:388725@1823359
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:370110@2212084
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:322551@2582194
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:314966@2904745
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:335015@3219711
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:439784@3554726
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:501920@3994510
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:450136@4496430
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:475004@4946566
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:881509@5421570
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:95463@6303079
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.360p.vp9.fast.mp4",BYTERANGE="781@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:311487@781
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:302239@312268
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:425585@614507
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:476188@1040092
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:320721@1516280
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:382909@1837001
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:382527@2219910
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:318962@2602437
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:308819@2921399
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:335379@3230218
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:443622@3565597
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:569561@4009219
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:443534@4578780
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:464938@5022314
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:891557@5487252
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:95682@6378809
caminandes-llamigos.webm.360p.vp9.fast.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,10 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:0
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.360p.vp9.pass1.mp4",BYTERANGE="775@0"
#EXTINF:0.000000,
#EXT-X-BYTERANGE:0@775
caminandes-llamigos.webm.360p.vp9.pass1.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.360p.vp9.pass2.mp4",BYTERANGE="811@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:224011@811
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:287541@224822
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:275702@512363
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:358634@788065
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:290711@1146699
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:342100@1437410
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:343599@1779510
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:464012@2123109
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:376226@2587121
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:299738@2963347
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:279558@3263085
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:240016@3542643
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:353870@3782659
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:321968@4136529
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:180795@4458497
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:33870@4639292
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.360p.vp9.pass2.mp4",BYTERANGE="781@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:228683@781
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:282428@229464
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:278357@511892
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:353853@790249
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:299306@1144102
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:335781@1443408
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:345489@1779189
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:463041@2124678
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:376032@2587719
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:300208@2963751
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:278118@3263959
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:241181@3542077
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:352512@3783258
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:322527@4135770
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:172499@4458297
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:34579@4630796
caminandes-llamigos.webm.360p.vp9.pass2.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.480p.vp9.fast.mp4",BYTERANGE="811@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:899025@811
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1019650@899836
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1103569@1919486
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1277238@3023055
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:914277@4300293
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1057272@5214570
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1110598@6271842
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:890037@7382440
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:897516@8272477
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:903212@9169993
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1190569@10073205
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1319919@11263774
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1264104@12583693
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1232714@13847797
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1753532@15080511
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:183129@16834043
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.480p.vp9.fast.mp4",BYTERANGE="781@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:895180@781
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1035495@895961
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1087046@1931456
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1217803@3018502
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:916453@4236305
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1051335@5152758
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1112967@6204093
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:873881@7317060
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:898072@8190941
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:924614@9089013
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1196380@10013627
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1360491@11210007
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1270737@12570498
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1310277@13841235
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2156950@15151512
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:183299@17308462
caminandes-llamigos.webm.480p.vp9.fast.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,10 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:0
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.480p.vp9.pass1.mp4",BYTERANGE="775@0"
#EXTINF:0.000000,
#EXT-X-BYTERANGE:0@775
caminandes-llamigos.webm.480p.vp9.pass1.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.480p.vp9.pass2.mp4",BYTERANGE="811@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:687708@811
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:846663@688519
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:813602@1535182
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1046869@2348784
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:874993@3395653
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1034504@4270646
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1048716@5305150
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1369715@6353866
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1119197@7723581
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:892755@8842778
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:844618@9735533
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:726326@10580151
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1055003@11306477
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:986099@12361480
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:511737@13347579
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:107651@13859316
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.480p.vp9.pass2.mp4",BYTERANGE="781@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:683930@781
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:856865@684711
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:816974@1541576
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1045841@2358550
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:874855@3404391
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1031818@4279246
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1047037@5311064
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1370894@6358101
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1117502@7728995
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:904358@8846497
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:827859@9750855
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:730725@10578714
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1056141@11309439
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:977280@12365580
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:526149@13342860
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:108706@13869009
caminandes-llamigos.webm.480p.vp9.pass2.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.720p.vp9.fast.mp4",BYTERANGE="811@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2872237@811
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3674999@2873048
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3742601@6548047
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3735599@10290648
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2968953@14026247
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3487315@16995200
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3475517@20482515
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2695183@23958032
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2747821@26653215
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2903110@29401036
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3712743@32304146
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:4321156@36016889
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3881140@40338045
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3632282@44219185
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:4507610@47851467
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:333550@52359077
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.720p.vp9.fast.mp4",BYTERANGE="781@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2850431@781
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3464714@2851212
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3758430@6315926
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3886971@10074356
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2956123@13961327
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3488971@16917450
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3425618@20406421
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2674884@23832039
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2746713@26506923
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2872780@29253636
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3656989@32126416
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:4543342@35783405
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3882762@40326747
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3712615@44209509
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:5110952@47922124
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:333936@53033076
caminandes-llamigos.webm.720p.vp9.fast.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,10 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:0
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.720p.vp9.pass1.mp4",BYTERANGE="775@0"
#EXTINF:0.000000,
#EXT-X-BYTERANGE:0@775
caminandes-llamigos.webm.720p.vp9.pass1.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.720p.vp9.pass2.mp4",BYTERANGE="811@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2258055@811
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2758213@2258866
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2717659@5017079
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3433608@7734738
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2857132@11168346
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3481715@14025478
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3597007@17507193
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:4493968@21104200
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3699068@25598168
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3008146@29297236
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2725374@32305382
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2520147@35030756
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3498898@37550903
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3395083@41049801
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1428060@44444884
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:269352@45872944
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.720p.vp9.pass2.mp4",BYTERANGE="781@0"
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2242009@781
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2812541@2242790
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2719419@5055331
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3422707@7774750
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2875352@11197457
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3472713@14072809
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3580238@17545522
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:4481855@21125760
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3689175@25607615
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3002140@29296790
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2720011@32298930
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:2527057@35018941
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3501399@37545998
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:3319238@41047397
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:1564439@44366635
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXTINF:0.041667,
#EXT-X-BYTERANGE:290103@45931074
caminandes-llamigos.webm.720p.vp9.pass2.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.audio.aac.mp4",BYTERANGE="765@0"
#EXTINF:10.008299,
#EXT-X-BYTERANGE:146509@765
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:143045@147274
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:9.984580,
#EXT-X-BYTERANGE:142491@290319
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142403@432810
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142635@575213
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:9.984580,
#EXT-X-BYTERANGE:143202@717848
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142608@861050
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:143138@1003658
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:9.984580,
#EXT-X-BYTERANGE:141949@1146796
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142466@1288745
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142764@1431211
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:9.984580,
#EXT-X-BYTERANGE:142392@1573975
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142859@1716367
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142604@1859226
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:9.984580,
#EXT-X-BYTERANGE:142135@2001830
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:0.138299,
#EXT-X-BYTERANGE:1768@2143965
caminandes-llamigos.webm.audio.aac.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.audio.aac.mp4",BYTERANGE="745@0"
#EXTINF:10.008299,
#EXT-X-BYTERANGE:146498@745
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142818@147243
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:9.984580,
#EXT-X-BYTERANGE:142488@290061
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142408@432549
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142638@574957
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:9.984580,
#EXT-X-BYTERANGE:143002@717595
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142706@860597
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:143174@1003303
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:9.984580,
#EXT-X-BYTERANGE:141908@1146477
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142465@1288385
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142781@1430850
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:9.984580,
#EXT-X-BYTERANGE:142646@1573631
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142858@1716277
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:142604@1859135
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:9.984580,
#EXT-X-BYTERANGE:142136@2001739
caminandes-llamigos.webm.audio.aac.mp4
#EXTINF:0.138299,
#EXT-X-BYTERANGE:1768@2143875
caminandes-llamigos.webm.audio.aac.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,54 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:11
#EXTINF:10.005397,
#EXT-X-BYTERANGE:160151@0
caminandes-llamigos.webm.audio.mp3
#EXTINF:10.004898,
#EXT-X-BYTERANGE:160151@160151
caminandes-llamigos.webm.audio.mp3
#EXTINF:10.004898,
#EXT-X-BYTERANGE:160152@320302
caminandes-llamigos.webm.audio.mp3
#EXTINF:10.004898,
#EXT-X-BYTERANGE:160151@480454
caminandes-llamigos.webm.audio.mp3
#EXTINF:10.004898,
#EXT-X-BYTERANGE:160151@640605
caminandes-llamigos.webm.audio.mp3
#EXTINF:9.978776,
#EXT-X-BYTERANGE:159734@800756
caminandes-llamigos.webm.audio.mp3
#EXTINF:10.004898,
#EXT-X-BYTERANGE:160151@960490
caminandes-llamigos.webm.audio.mp3
#EXTINF:10.004898,
#EXT-X-BYTERANGE:160152@1120641
caminandes-llamigos.webm.audio.mp3
#EXTINF:10.004898,
#EXT-X-BYTERANGE:160151@1280793
caminandes-llamigos.webm.audio.mp3
#EXTINF:10.004898,
#EXT-X-BYTERANGE:160151@1440944
caminandes-llamigos.webm.audio.mp3
#EXTINF:9.978776,
#EXT-X-BYTERANGE:159734@1601095
caminandes-llamigos.webm.audio.mp3
#EXTINF:10.004898,
#EXT-X-BYTERANGE:160151@1760829
caminandes-llamigos.webm.audio.mp3
#EXTINF:10.004898,
#EXT-X-BYTERANGE:160151@1920980
caminandes-llamigos.webm.audio.mp3
#EXTINF:10.004898,
#EXT-X-BYTERANGE:160152@2081131
caminandes-llamigos.webm.audio.mp3
#EXTINF:10.004898,
#EXT-X-BYTERANGE:160151@2241283
caminandes-llamigos.webm.audio.mp3
#EXTINF:0.119819,
#EXT-X-BYTERANGE:2163@2401434
caminandes-llamigos.webm.audio.mp3
#EXT-X-ENDLIST

View file

@ -0,0 +1,38 @@
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:11
#EXTINF:10.005397,
caminandes-llamigos.webm.audio.mp3.0000.mp3
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0001.mp3
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0002.mp3
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0003.mp3
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0004.mp3
#EXTINF:9.978776,
caminandes-llamigos.webm.audio.mp3.0005.mp3
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0006.mp3
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0007.mp3
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0008.mp3
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0009.mp3
#EXTINF:9.978776,
caminandes-llamigos.webm.audio.mp3.0010.mp3
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0011.mp3
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0012.mp3
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0013.mp3
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0014.mp3
#EXTINF:0.119819,
caminandes-llamigos.webm.audio.mp3.0015.mp3
#EXT-X-ENDLIST

View file

@ -0,0 +1,39 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="init.mp4"
#EXTINF:10.005397,
caminandes-llamigos.webm.audio.mp3.0000.mp4
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0001.mp4
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0002.mp4
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0003.mp4
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0004.mp4
#EXTINF:9.978776,
caminandes-llamigos.webm.audio.mp3.0005.mp4
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0006.mp4
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0007.mp4
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0008.mp4
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0009.mp4
#EXTINF:9.978776,
caminandes-llamigos.webm.audio.mp3.0010.mp4
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0011.mp4
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0012.mp4
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0013.mp4
#EXTINF:10.004898,
caminandes-llamigos.webm.audio.mp3.0014.mp4
#EXTINF:0.119819,
caminandes-llamigos.webm.audio.mp3.0015.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.audio.opus.mp4",BYTERANGE="730@0"
#EXTINF:10.000500,
#EXT-X-BYTERANGE:132872@730
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:123174@133602
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:135010@256776
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:117511@391786
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:118212@509297
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:131035@627509
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:124351@758544
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:113500@882895
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:114360@996395
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:113912@1110755
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:120837@1224667
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:122973@1345504
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:122906@1468477
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:122139@1591383
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:119734@1713522
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:0.122500,
#EXT-X-BYTERANGE:1901@1833256
caminandes-llamigos.webm.audio.opus.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.audio.opus.mp4",BYTERANGE="710@0"
#EXTINF:10.000500,
#EXT-X-BYTERANGE:132873@710
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:123174@133583
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:135010@256757
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:117511@391767
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:118212@509278
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:131035@627490
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:124351@758525
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:113500@882876
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:114360@996376
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:113912@1110736
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:120836@1224648
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:122974@1345484
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:122906@1468458
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:122139@1591364
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:10.000000,
#EXT-X-BYTERANGE:119734@1713503
caminandes-llamigos.webm.audio.opus.mp4
#EXTINF:0.122500,
#EXT-X-BYTERANGE:1901@1833237
caminandes-llamigos.webm.audio.opus.mp4
#EXT-X-ENDLIST

View file

@ -0,0 +1,55 @@
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="caminandes-llamigos.webm.audio.vorbis.mp4",BYTERANGE="4698@0"
#EXTINF:10.009751,
#EXT-X-BYTERANGE:139926@4698
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:138359@144624
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:10.004898,
#EXT-X-BYTERANGE:136459@282983
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:9.990385,
#EXT-X-BYTERANGE:136901@419442
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:138719@556343
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:9.996190,
#EXT-X-BYTERANGE:150004@695062
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:9.987483,
#EXT-X-BYTERANGE:142395@845066
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:9.996190,
#EXT-X-BYTERANGE:136258@987461
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:10.007800,
#EXT-X-BYTERANGE:136154@1123719
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:9.993288,
#EXT-X-BYTERANGE:137904@1259873
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:10.013605,
#EXT-X-BYTERANGE:128059@1397777
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:10.001995,
#EXT-X-BYTERANGE:135733@1525836
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:10.004898,
#EXT-X-BYTERANGE:132232@1661569
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:9.993288,
#EXT-X-BYTERANGE:128301@1793801
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:9.990385,
#EXT-X-BYTERANGE:143340@1922102
caminandes-llamigos.webm.audio.vorbis.mp4
#EXTINF:0.093311,
#EXT-X-BYTERANGE:1202@2065442
caminandes-llamigos.webm.audio.vorbis.mp4
#EXT-X-ENDLIST

8
h263-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-h263.ts
#EXT-X-ENDLIST

54
make-hls2.sh Normal file
View file

@ -0,0 +1,54 @@
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"
if false
then
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"
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='h263.mp4':fontsize=72:fontcolor=brown, scale=352:288" $VIDEO_H263 -y polyphon-h263.h263 || exit 1
#ffmpeg -f m4v -i polyphon-h263.h263 -vcodec copy -y polyphon-h263.mp4 || exit 1
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
fi
ffmpeg -i polyphon.ogv $AUDIO_MP3 -vf "drawtext=text='vp9-mp3.mp4':fontsize=72:fontcolor=purple" $VIDEO_VP9 $MOVFLAGS -y polyphon-vp9-mp3.mp4

45
mov.html Normal file
View file

@ -0,0 +1,45 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>QuickTime codecs test</title>
</head>
<body>
<h1>QuickTime codecs test</h1>
<p>MJPEG/MP3 in QuickTime</p>
<video id=flat controls width=640 height=360>
<source type="video/quicktime" src=polyphon-jpeg-mp3.mov>
</video>
<p>H.263/MP3 in QuickTime</p>
<video id=flat1 controls width=640 height=360>
<source type="video/quicktime" src=polyphon-h263-mp3.mov>
</video>
<p>H.263+/MP3 in QuickTime</p>
<video id=flat1b controls width=640 height=360>
<source type="video/quicktime" src=polyphon-h263p-mp3.mov>
</video>
<p>MPEG-1/MP3 in QuickTime</p>
<video id=flat2 controls width=640 height=360>
<source type="video/quicktime" src=polyphon-mpeg1-mp3.mov>
</video>
<p>MPEG-2/MP3 in QuickTime</p>
<video id=flat3 controls width=640 height=360>
<source type="video/quicktime" src=polyphon-mpeg2-mp3.mov>
</video>
<p>MPEG-4/MP3 in QuickTime</p>
<video id=flat4 controls width=640 height=360>
<source type="video/quicktime" src=polyphon-m4v-mp3.mov>
</video>
<p>H.264/MP3 in QuickTime</p>
<video id=flat5 controls width=640 height=360>
<source type="video/quicktime" src=polyphon-h264-mp3.mov>
</video>
</body>
</html>

28
mov.sh Normal file
View file

@ -0,0 +1,28 @@
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_H263_PLUS="-vcodec h263p -b:v 1280k"
VIDEO_JPEG="-vcodec mjpeg $BITRATE_HI"
VIDEO_VP8="-vcodec libvpx $BITRATE_HI"
VIDEO_VP9="-vcodec libvpx-vp9 -row-mt 1 $BITRATE_LO"
AUDIO_AAC="-acodec aac -ac 2 -ar 44100 -ab 128k"
AUDIO_MP3="-acodec libmp3lame -ac 2 -ar 44100 -ab 128k"
AUDIO_OPUS="-acodec libopus -ac 2 -ar 48000 -ab 128k"
AUDIO_VORBIS="-acodec libvorbis -ac 2 -ar 44100 -ab 128k"
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='jpeg.mov':fontsize=72:fontcolor=magenta, scale=640:360" $VIDEO_JPEG $AUDIO_MP3 $MOVFLAGS -y polyphon-jpeg-mp3.mov || exit 1
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='mpeg1.mov':fontsize=72:fontcolor=brown" -vcodec mpeg1video $BITRATE_HI $AUDIO_MP3 $MOVFLAGS -y polyphon-mpeg1-mp3.mov || exit 1
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='mpeg2.mov':fontsize=72:fontcolor=brown" -vcodec mpeg2video $BITRATE_HI $AUDIO_MP3 $MOVFLAGS -y polyphon-mpeg2-mp3.mov || exit 1
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='h263.mov':fontsize=72:fontcolor=brown, scale=352:288" $VIDEO_H263 $AUDIO_MP3 $MOVFLAGS -y polyphon-h263-mp3.mov || exit 1
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='h263p.mov':fontsize=72:fontcolor=brown, scale=720:480" $VIDEO_H263_PLUS $AUDIO_MP3 $MOVFLAGS -y polyphon-h263p-mp3.mov || exit 1
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='m4v.mov':fontsize=72:fontcolor=brown" -vcodec mpeg4 $BITRATE_HI $AUDIO_MP3 $MOVFLAGS -y polyphon-m4v-mp3.mov || exit 1
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='h264.mov':fontsize=72:fontcolor=red" $VIDEO_H264 $AUDIO_MP3 $MOVFLAGS -y polyphon-h264-mp3.mov || exit 1
#ffmpeg -i polyphon.ogv -an -vf "drawtext=text='vp8.mov':fontsize=72:fontcolor=cyan" $VIDEO_VP8 $AUDIO_MP3 -y polyphon-vp8-mp3.mov || exit 1
#ffmpeg -i polyphon.ogv -an -vf "drawtext=text='vp9.mov':fontsize=72:fontcolor=green" $VIDEO_VP9 $AUDIO_MP3 -y polyphon-vp9-mp3.mov || exit 1

40
mp4.html Normal file
View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>MP4 codecs test</title>
</head>
<body>
<h1>MP4 codecs test</h1>
<p>MJPEG/MP3 in MP4</p>
<video id=flat controls width=640 height=360>
<source type="video/mp4" src=polyphon-jpeg-mp3.mp4>
</video>
<p>MPEG-1/MP3 in MP4</p>
<video id=flat2 controls width=640 height=360>
<source type="video/mp4" src=polyphon-mpeg1-mp3.mp4>
</video>
<p>MPEG-2/MP3 in MP4</p>
<video id=flat3 controls width=640 height=360>
<source type="video/mp4" src=polyphon-mpeg2-mp3.mp4>
</video>
<p>MPEG-4/MP3 in MP4</p>
<video id=flat4 controls width=640 height=360>
<source type="video/mp4" src=polyphon-m4v-mp3.mp4>
</video>
<p>H.264/MP3 in MP4</p>
<video id=flat5 controls width=640 height=360>
<source type="video/mp4" src=polyphon-h264-mp3.mp4>
</video>
<p>VP9/MP3 in MP4</p>
<video id=flat6 controls width=640 height=360>
<source type="video/mp4" src=polyphon-vp9-mp3.mp4>
</video>
</body>
</html>

27
mp4.sh Normal file
View file

@ -0,0 +1,27 @@
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_H263_PLUS="-vcodec h263p -b:v 1280k"
VIDEO_JPEG="-vcodec mjpeg"
VIDEO_VP8="-vcodec libvpx $BITRATE_HI"
VIDEO_VP9="-vcodec libvpx-vp9 -row-mt 1 $BITRATE_LO"
AUDIO_AAC="-ac 2 -ar 44100 -vb 128k"
AUDIO_MP3="-acodec libmp3lame -ac 2 -ar 44100 -vb 128k"
AUDIO_OPUS="-acodec libopus -ac 2 -ar 48000 -vb 128k"
AUDIO_VORBIS="-acodec libvorbis -ac 2 -ar 44100 -vb 128k"
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='jpeg-mp3.mp4':fontsize=72:fontcolor=magenta, scale=640:360" $VIDEO_JPEG $AUDIO_MP3 $MOVFLAGS -y polyphon-jpeg-mp3.mp4 || exit 1
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='mpeg1-mp3.mp4':fontsize=72:fontcolor=brown" -vcodec mpeg1video $BITRATE_HI $AUDIO_MP3 $MOVFLAGS -y polyphon-mpeg1-mp3.mp4 || exit 1
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='mpeg2-mp3.mp4':fontsize=72:fontcolor=brown" -vcodec mpeg2video $BITRATE_HI $AUDIO_MP3 $MOVFLAGS -y polyphon-mpeg2-mp3.mp4 || exit 1
#ffmpeg -i polyphon.ogv -an -vf "drawtext=text='h263-mp3.mp4':fontsize=72:fontcolor=brown, scale=352:288" $VIDEO_H263 $AUDIO_MP3 $MOVFLAGS -y polyphon-h263-mp3.mp4 || exit 1
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='h264-mp3.mp4':fontsize=72:fontcolor=red" $VIDEO_H264 $AUDIO_MP3 $MOVFLAGS -y polyphon-h264-mp3.mp4 || exit 1
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='m4v-mp3.mp4':fontsize=72:fontcolor=brown" -vcodec mpeg4 $BITRATE_HI $AUDIO_MP3 $MOVFLAGS -y polyphon-m4v-mp3.mp4 || exit 1
#ffmpeg -i polyphon.ogv -an -vf "drawtext=text='vp8-mp3.mp4':fontsize=72:fontcolor=cyan" $VIDEO_VP8 $AUDIO_MP3 -y polyphon-vp8-mp3.mp4 || exit 1
ffmpeg -i polyphon.ogv -an -vf "drawtext=text='vp9-mp3.mp4':fontsize=72:fontcolor=green" $VIDEO_VP9 $AUDIO_MP3 -y polyphon-vp9-mp3.mp4 || exit 1

27
mpeg.html Normal file
View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>MPEG codecs test</title>
</head>
<body>
<h1>MPEG codecs test</h1>
<p>MPEG-1 PS</p>
<video id=flat controls width=640 height=360>
<source type="video/mpeg" src=polyphon-mpeg1.mpeg>
</video>
<p>MPEG-2 PS</p>
<video id=flat2 controls width=640 height=360>
<source type="video/mpeg" src=polyphon-mpeg2.mpeg>
</video>
<p>MPEG-1 PS, no markings</p>
<video id=flat3 controls width=640 height=360 src=polyphon-mpeg1.mpeg></video>
<p>MPEG-2 PS, no markings</p>
<video id=flat4 controls width=640 height=360 src=polyphon-mpeg2.mpeg></video>
</body>
</html>

5
mpeg.sh Normal file
View file

@ -0,0 +1,5 @@
VIDEO_MPEG1="-vcodec mpeg1video"
VIDEO_MPEG2="-vcodec mpeg2video"
ffmpeg -i polyphon.ogv -vf "drawtext=text='mpeg1.mpeg':fontsize=72:fontcolor=yellow, scale=352:288" $VIDEO_MPEG1 -vb 1024k -ab 128k -y polyphon-mpeg1.mpeg || exit 1
ffmpeg -i polyphon.ogv -vf "drawtext=text='mpeg2.mpeg':fontsize=72:fontcolor=purple, scale=720:480" $VIDEO_MPEG2 -vb 2048k -y polyphon-mpeg2.mpeg || exit 1

6
only-jpeg-ts.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="jpeg,mp4a.40",AUDIO="a1"
jpeg-in-ts.m3u8

11
paladin.html Normal file
View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta chartset="utf-8">
<title>Paladin.webm</title>
</head>
<body>
<video controls src="paladin.webm" width="640" height="640"></video>
</body>
</html>

312
transcode-old.php Normal file
View file

@ -0,0 +1,312 @@
<?php
function run( $prog, $params ) {
$cmd = escapeshellcmd( $prog ) . " " . implode( ' ', array_map( 'escapeshellarg', $params ) );
echo "\n$cmd\n\n";
$output = [];
$code = 0;
if ( exec($cmd, $output, $code) === false ) {
throw new Exception( 'failed to exec ffmpeg' );
}
if ( $code ) {
throw new Exception( "ffmpeg returned coded $code" );
}
return $output;
}
function ffprobe( $file ) {
$output = run( 'ffprobe', [ '-hide_banner', '-show_format', '-show_streams', '-print_format', 'json', '--', $file ] );
$json = implode( "\n", $output );
return json_decode( $json );
}
class Audio {
public const FORMATS = [
'aac' => [
'options' => [
'-acodec', 'aac',
'-ar', 44100,
'-ac', 2,
'-b:a', '112k',
],
],
'opus' => [
'options' => [
'-acodec', 'libopus',
'-ar', 48000,
'-ac', 2,
'-b:a', '96k',
],
],
'mp3' => [
'options' => [
'-acodec', 'libmp3lame',
'-ar', 44100,
'-ac', 2,
'-b:a', '128k',
],
],
'alac' => [
'options' => [
'-acodec', 'alac',
'-ar', 11025,
'-ac', 2,
],
],
'vorbis' => [
'options' => [
'-acodec', 'libvorbis',
'-ar', 44100,
'-ac', 2,
'-b:a', '112k',
],
],
];
}
class Video {
// Normalize input frame rates to the next up of these.
// Lets us ensure that keyframes are places where they belong.
public const RATES = [
15, 24, 25, 30, 48, 50, 60
];
public const FORMATS = [
'vp9' => [
'options' => [
'common' => [
'-vcodec', 'libvpx-vp9',
'-row-mt', '1',
],
'fast' => [
'-quality', 'realtime',
'-cpu-used', '5',
],
'pass1' => [
'-quality', 'good',
'-cpu-used', '2',
'-pass', '1',
],
'pass2' => [
'-quality', 'good',
'-cpu-used', '1',
'-pass', '2',
]
],
'resolutions' => [
'240p' => [
'width' => 426,
'height' => 240,
'bitrate' => '150k',
],
'360p' => [
'width' => 640,
'height' => 360,
'bitrate' => '250k',
],
'480p' => [
'width' => 854,
'height' => 480,
'bitrate' => '750k',
],
'720p' => [
'width' => 1280,
'height' => 720,
'bitrate' => '2500k',
],
'1080p' => [
'width' => 1920,
'height' => 1080,
'bitrate' => '5000k',
],
'1440p' => [
'width' => 2560,
'height' => 1440,
'bitrate' => '9000k',
],
'2160p' => [
'width' => 3840,
'height' => 2160,
'bitrate' => '12500k',
],
],
],
];
}
class Fraction {
public $numerator = 0;
public $denominator = 0;
public function __construct( $num, $denom ) {
$this->numerator = $num;
$this->denominator = $denom;
}
public function toFloat() {
return $this->numerator / $this->denominator;
}
public function toString() {
return "$this->numerator/$this->denominator";
}
public static function fromString( $frac ) {
list ( $num, $denom ) = array_map( 'intval', explode( '/', $frac, 2 ) );
return new Fraction( $num, $denom );
}
}
class SourceFile {
public $filename = '';
public $duration = 0.0;
public $video = false;
public $width = 0;
public $height = 0;
public $fps = null;
public $audio = false;
public $sampleRate = 0;
public $channels = 0;
public function __construct( $filename ) {
$this->filename = $filename;
$data = ffprobe( $filename );
$this->duration = $data->format->duration;
foreach ( $data->streams as $stream ) {
if ( $stream->codec_type == 'video' && !$this->video ) {
$this->video = true;
$this->width = $stream->width;
$this->height = $stream->height;
$this->fps = Fraction::fromString( $stream->r_frame_rate );
}
if ( $stream->codec_type === 'audio' && !$this->audio ) {
$this->audio = true;
$this->sampleRate = $stream->sample_rate;
$this->channels = $stream->channels;
}
}
}
}
class Transcoder {
private $source = null;
private $fps = 0;
private $gop = 0;
public const SEGMENT_DURATION = 10;
public function __construct( SourceFile $source ) {
$this->source = $source;
// Normalize input fps to an even standard
$infps = $this->source->fps->toFloat();
$this->fps = Video::RATES[0];
foreach ( Video::RATES as $rate ) {
if ( $rate >= $infps ) {
$this->fps = $rate;
break;
}
}
// Each self-contained group of pictures starts with a keyframe.
$this->gop = $this->fps * self::SEGMENT_DURATION;
}
private function ffmpeg( $options, $outfile, $container ) {
if ( $mode === 'pass1' ) {
$filename = '/dev/null';
$playlist = '/dev/null';
} else {
$filename = "$outfile.%04d.$container";
$playlist = "$outfile.$container.m3u8";
}
$ffmpegOptions = array_merge( [
'-hide_banner',
'-i',
$this->source->filename,
'-f', 'hls',
'-hls_segment_type', 'fmp4',
'-hls_time', '10',
'-hls_playlist_type', 'vod',
'-hls_segment_filename', $filename,
], $options, [
'-y', $playlist
] );
$output = run( 'ffmpeg', $ffmpegOptions );
}
public function video( $codec, $resolution, $mode ) {
if ( !$this->source->video ) {
throw new Error('no video');
}
$res = Video::FORMATS[$codec]['resolutions'][$resolution];
$options = array_merge(
[
'-pix_fmt', 'yuv420p',
'-r', $this->fps,
],
Video::FORMATS[$codec]['options']['common'],
Video::FORMATS[$codec]['options'][$mode],
[
'-vf', "scale=" . implode( ':', [ $res['width'], $res['height'] ] ),
'-b:v', $res['bitrate'],
'-g', $this->gop,
'-keyint_min', $this->gop, // may not be generic enough
'-an',
]
);
$outfile = "{$this->source->filename}.{$resolution}.{$codec}.{$mode}";
$this->ffmpeg( $options, $outfile, "mp4" );
}
public function audio( $codec ) {
if ( !$this->source->audio ) {
throw new Error('no audio');
}
$format = Audio::FORMATS[$codec];
$options = array_merge(
$format['options'],
[
'-vn',
]
);
$outfile = "{$this->source->filename}.audio.{$codec}";
$this->ffmpeg( $options, $outfile, "mp4" );
}
}
$infiles = [
'caminandes-llamigos.webm',
];
foreach ( $infiles as $filename ) {
$source = new SourceFile( $filename );
$codec = new Transcoder( $source );
//$codec->audio('opus');
$codec->audio('mp3');
//$codec->audio('aac');
//$codec->audio('alac');
//$codec->audio('vorbis');
/*
foreach ( Video::FORMATS['vp9']['resolutions'] as $res => $format ) {
if ( $format['width'] <= $source->width && $format['height'] <= $source->height ) {
$codec->video('vp9', $res, 'fast');
$codec->video('vp9', $res, 'pass1');
$codec->video('vp9', $res, 'pass2');
}
}
*/
}

312
transcode.php Normal file
View file

@ -0,0 +1,312 @@
<?php
function run( $prog, $params ) {
$cmd = escapeshellcmd( $prog ) . " " . implode( ' ', array_map( 'escapeshellarg', $params ) );
echo "\n$cmd\n\n";
$output = [];
$code = 0;
if ( exec($cmd, $output, $code) === false ) {
throw new Exception( 'failed to exec ffmpeg' );
}
if ( $code ) {
throw new Exception( "ffmpeg returned coded $code" );
}
return $output;
}
function ffprobe( $file ) {
$output = run( 'ffprobe', [ '-hide_banner', '-show_format', '-show_streams', '-print_format', 'json', '--', $file ] );
$json = implode( "\n", $output );
return json_decode( $json );
}
class Audio {
public const FORMATS = [
'aac' => [
'options' => [
'-acodec', 'aac',
'-ar', 44100,
'-ac', 2,
'-b:a', '112k',
],
],
'opus' => [
'options' => [
'-acodec', 'libopus',
'-ar', 48000,
'-ac', 2,
'-b:a', '96k',
],
],
'mp3' => [
'options' => [
'-acodec', 'libmp3lame',
'-ar', 44100,
'-ac', 2,
'-b:a', '128k',
],
],
'alac' => [
'options' => [
'-acodec', 'alac',
'-ar', 11025,
'-ac', 2,
],
],
'vorbis' => [
'options' => [
'-acodec', 'libvorbis',
'-ar', 44100,
'-ac', 2,
'-b:a', '112k',
],
],
];
}
class Video {
// Normalize input frame rates to the next up of these.
// Lets us ensure that keyframes are places where they belong.
public const RATES = [
15, 24, 25, 30, 48, 50, 60
];
public const FORMATS = [
'vp9' => [
'options' => [
'common' => [
'-vcodec', 'libvpx-vp9',
'-row-mt', '1',
],
'fast' => [
'-quality', 'realtime',
'-cpu-used', '5',
],
'pass1' => [
'-quality', 'good',
'-cpu-used', '2',
'-pass', '1',
],
'pass2' => [
'-quality', 'good',
'-cpu-used', '1',
'-pass', '2',
]
],
'resolutions' => [
'240p' => [
'width' => 426,
'height' => 240,
'bitrate' => '150k',
],
'360p' => [
'width' => 640,
'height' => 360,
'bitrate' => '250k',
],
'480p' => [
'width' => 854,
'height' => 480,
'bitrate' => '750k',
],
'720p' => [
'width' => 1280,
'height' => 720,
'bitrate' => '2500k',
],
'1080p' => [
'width' => 1920,
'height' => 1080,
'bitrate' => '5000k',
],
'1440p' => [
'width' => 2560,
'height' => 1440,
'bitrate' => '9000k',
],
'2160p' => [
'width' => 3840,
'height' => 2160,
'bitrate' => '12500k',
],
],
],
];
}
class Fraction {
public $numerator = 0;
public $denominator = 0;
public function __construct( $num, $denom ) {
$this->numerator = $num;
$this->denominator = $denom;
}
public function toFloat() {
return $this->numerator / $this->denominator;
}
public function toString() {
return "$this->numerator/$this->denominator";
}
public static function fromString( $frac ) {
list ( $num, $denom ) = array_map( 'intval', explode( '/', $frac, 2 ) );
return new Fraction( $num, $denom );
}
}
class SourceFile {
public $filename = '';
public $duration = 0.0;
public $video = false;
public $width = 0;
public $height = 0;
public $fps = null;
public $audio = false;
public $sampleRate = 0;
public $channels = 0;
public function __construct( $filename ) {
$this->filename = $filename;
$data = ffprobe( $filename );
$this->duration = $data->format->duration;
foreach ( $data->streams as $stream ) {
if ( $stream->codec_type == 'video' && !$this->video ) {
$this->video = true;
$this->width = $stream->width;
$this->height = $stream->height;
$this->fps = Fraction::fromString( $stream->r_frame_rate );
}
if ( $stream->codec_type === 'audio' && !$this->audio ) {
$this->audio = true;
$this->sampleRate = $stream->sample_rate;
$this->channels = $stream->channels;
}
}
}
}
class Transcoder {
private $source = null;
private $fps = 0;
private $gop = 0;
public const SEGMENT_DURATION = 10;
public function __construct( SourceFile $source ) {
$this->source = $source;
// Normalize input fps to an even standard
$infps = $this->source->fps->toFloat();
$this->fps = Video::RATES[0];
foreach ( Video::RATES as $rate ) {
if ( $rate >= $infps ) {
$this->fps = $rate;
break;
}
}
// Each self-contained group of pictures starts with a keyframe.
$this->gop = $this->fps * self::SEGMENT_DURATION;
}
private function ffmpeg( $options, $outfile, $container ) {
if ( $mode === 'pass1' ) {
$filename = '/dev/null';
$playlist = '/dev/null';
} else {
$filename = "$outfile.%04d.$container";
$playlist = "$outfile.$container.m3u8";
}
$ffmpegOptions = array_merge( [
'-hide_banner',
'-i',
$this->source->filename,
'-f', 'hls',
'-hls_segment_type', 'fmp4',
'-hls_time', '10',
'-hls_playlist_type', 'vod',
'-hls_segment_filename', $filename,
], $options, [
'-y', $playlist
] );
$output = run( 'ffmpeg', $ffmpegOptions );
}
public function video( $codec, $resolution, $mode ) {
if ( !$this->source->video ) {
throw new Error('no video');
}
$res = Video::FORMATS[$codec]['resolutions'][$resolution];
$options = array_merge(
[
'-pix_fmt', 'yuv420p',
'-r', $this->fps,
],
Video::FORMATS[$codec]['options']['common'],
Video::FORMATS[$codec]['options'][$mode],
[
'-vf', "scale=" . implode( ':', [ $res['width'], $res['height'] ] ),
'-b:v', $res['bitrate'],
'-g', $this->gop,
'-keyint_min', $this->gop, // may not be generic enough
'-an',
]
);
$outfile = "{$this->source->filename}.{$resolution}.{$codec}.{$mode}";
$this->ffmpeg( $options, $outfile, "mp4" );
}
public function audio( $codec ) {
if ( !$this->source->audio ) {
throw new Error('no audio');
}
$format = Audio::FORMATS[$codec];
$options = array_merge(
$format['options'],
[
'-vn',
]
);
$outfile = "{$this->source->filename}.audio.{$codec}";
$this->ffmpeg( $options, $outfile, "mp4" );
}
}
$infiles = [
'caminandes-llamigos.webm',
];
foreach ( $infiles as $filename ) {
$source = new SourceFile( $filename );
$codec = new Transcoder( $source );
//$codec->audio('opus');
$codec->audio('mp3');
//$codec->audio('aac');
//$codec->audio('alac');
//$codec->audio('vorbis');
/*
foreach ( Video::FORMATS['vp9']['resolutions'] as $res => $format ) {
if ( $format['width'] <= $source->width && $format['height'] <= $source->height ) {
$codec->video('vp9', $res, 'fast');
$codec->video('vp9', $res, 'pass1');
$codec->video('vp9', $res, 'pass2');
}
}
*/
}