From 15b30ffae7b43d9a2628eef9b5f4a145e4cc3daf Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 29 Mar 2023 10:59:47 -0700 Subject: [PATCH] wip --- fmp4-tracks.html | 104 +++++++++++++++++++++++++++++++++++++ fmp4.html | 130 +++++++++++++--------------------------------- make-fmp4.sh | 8 ++- meta-playlist.php | 24 ++++----- 4 files changed, 156 insertions(+), 110 deletions(-) create mode 100644 fmp4-tracks.html diff --git a/fmp4-tracks.html b/fmp4-tracks.html new file mode 100644 index 0000000..a0cbaa1 --- /dev/null +++ b/fmp4-tracks.html @@ -0,0 +1,104 @@ + + + + + HLS VP9/fMP4 tracks test + + + +

HLS VP9/fMP4 tracks test

+ +

Caminandes - Llamigos

+ +

back to main fmp4 entryy

+ +

Full fallbacks

+ +

WebM VP9 and VP8 in front, HLS with VP9/MJPEG video and Opus/MP3 audio behind.

+ + +

Single video codecs

+ +

HLS VP9 + Opus/MP3:

+ + +

HLS Motion-JPEG.mov + Opus/MP3:

+ + +

HLS H.263.mov + Opus/MP3:

+ + +

HLS H.263.3gp + Opus/MP3:

+ + +

HLS MPEG-4 Visual + Opus/MP3:

+ + +

HLS H.264 + Opus/MP3:

+ + +

Component tracks

+ +

HLS VP9 in fMP4:

+ + +

HLS MJPEG.mov in fMP4:

+ + +

HLS h.263.mov in fMP4:

+ + +

HLS h.263.3gp in fMP4:

+ + +

HLS MPEG-4 Visual in fMP4:

+ + +

HLS h.264 in fMP4:

+ + +

HLS Opus in fMP4:

+ + +

HLS AAC in fMP4:

+ + +

HLS MP3:

+ + + + \ No newline at end of file diff --git a/fmp4.html b/fmp4.html index 07a3f3a..91aa47e 100644 --- a/fmp4.html +++ b/fmp4.html @@ -12,103 +12,43 @@

Full fallbacks

-

WebM VP9 and VP8 in front, HLS with VP9/MJPEG video and Opus/MP3 audio behind.

- +

HLS with VP9/MJPEG video tracks and Opus/MP3 audio tracks.

+
+ +
-

Single video codecs

+

see full fmp4 track variants list

-

HLS VP9 + Opus/MP3:

- - -

HLS Motion-JPEG.mov + Opus/MP3:

- - -

HLS H.263.3gp + Opus/MP3:

- - -

HLS MPEG-4 Visual + Opus/MP3:

- - -

HLS H.264 + Opus/MP3:

- - -

VP9 + Single fallback

- -

HLS VP9/MJPEG.mov with Opus/MP3:

- - -

HLS VP9/H.263.3gp with Opus/MP3:

- - -

HLS VP9/MPEG-4 Visual with Opus/MP3:

- - -

HLS VP9/H.264 with Opus/MP3:

- - -

Component tracks

- -

HLS VP9 in fMP4:

- - -

HLS MJPEG.mov in fMP4:

- - -

HLS h.263.3gp in fMP4:

- - -

HLS MPEG-4 Visual in fMP4:

- - -

HLS h.264 in fMP4:

- - -

HLS Opus in fMP4:

- - -

HLS AAC in fMP4:

- - -

HLS MP3:

- + + \ No newline at end of file diff --git a/make-fmp4.sh b/make-fmp4.sh index c5ebed6..7080115 100755 --- a/make-fmp4.sh +++ b/make-fmp4.sh @@ -42,8 +42,10 @@ set -e #ffmpeg -i $INFILE -an $VIDEO_H263 $MOVFLAGS -y fmp4.288p.h263.3gp #ffmpeg -i $INFILE -an $VIDEO_H263 $MOVFLAGS -y fmp4.288p.h263.mov -#ffmpeg -i $INFILE -an $VIDEO_MJPEG $MOVFLAGS -y fmp4.120p.mjpeg.mp4 -#ffmpeg -i $INFILE -an $VIDEO_MJPEG $MOVFLAGS -y fmp4.120p.mjpeg.mov +# Note use duration, not keyframe interval, for fragments, +# because all are keyframes! +#ffmpeg -i $INFILE -an $VIDEO_MJPEG $AUDFLAGS -y fmp4.120p.mjpeg.mp4 +#ffmpeg -i $INFILE -an $VIDEO_MJPEG $AUDFLAGS -y fmp4.120p.mjpeg.mov # Playlist processing php extract-playlist.php fmp4.audio.mpeg.mp3 > fmp4.audio.mpeg.mp3.m3u8 @@ -60,11 +62,13 @@ php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 480p.vp9.mp4 > fmp4.v php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 480p.h264.mp4 > fmp4.h264.m3u8 php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 480p.mpeg4.mp4 > fmp4.mpeg4.m3u8 php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 288p.h263.3gp > fmp4.h263.3gp.m3u8 +php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 288p.h263.mov > fmp4.h263.mov.m3u8 php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 120p.mjpeg.mp4 > fmp4.mjpeg.m3u8 php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 120p.mjpeg.mov > fmp4.mjpeg.mov.m3u8 php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 480p.vp9.mp4 480p.h264.mp4 > fmp4.vp9-h264.m3u8 php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 480p.vp9.mp4 480p.mpeg4.mp4 > fmp4.vp9-mpeg4.m3u8 php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 480p.vp9.mp4 288p.h263.3gp > fmp4.vp9-h263.3gp.m3u8 +php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 480p.vp9.mp4 288p.h263.mov > fmp4.vp9-h263.mov.m3u8 php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 480p.vp9.mp4 120p.mjpeg.mp4 > fmp4.vp9-mjpeg.m3u8 php meta-playlist.php fmp4 audio.opus.mp4 audio.mpeg.mp3 480p.vp9.mp4 120p.mjpeg.mov > fmp4.vp9-mjpeg.mov.m3u8 diff --git a/meta-playlist.php b/meta-playlist.php index 2a5f967..6d69b89 100644 --- a/meta-playlist.php +++ b/meta-playlist.php @@ -24,21 +24,19 @@ $videoCodecs = [ // 'mpeg4' => 'avc1', // lies // 'h263' => 'avc1', // lies - 'mjpeg' => 'jpeg', // works on mov, not mp4 - - // These lies work on iOS too - 'h263' => 'avc1.42e00a', // lies - 'mpeg4' => 'avc1.42e00a', // lies - //'mpeg4' => 'mp4v', // ??? - //'h263' => 'h263', // ??? - - /* - 'h264' => 'mp4v', - 'h263' => 'mp4v', - 'mjpeg' => 'mp4v', + // truths +/* + 'mjpeg' => 'jpeg', // works on current mac & ios 13, but not ios 10 + 'h263' => 's263', 'mpeg4' => 'mp4v', - */ +*/ + // These lies work on iOS 10 and iOS 13+ too + 'mjpeg' => 'avc1.42e00a', // lies + 'h263' => 'avc1.42e00a', // lies + 'mpeg4' => 'avc1.42e00a', // lies + + // none of them seem to work on iOS 12! ];