summaryrefslogtreecommitdiff
path: root/localvideowebencode
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2021-02-10 18:01:10 +0100
committerJonas Smedegaard <dr@jones.dk>2021-02-10 20:52:47 +0100
commitb2ae9148abcec71be8b8f0764a401e24317592df (patch)
treeca70887ec6512154e17b261cf23b12f15e69e21c /localvideowebencode
parent450e61b843cfdf2fcd7c7234e599b370fc38cc57 (diff)
tidy: update TODOs
Diffstat (limited to 'localvideowebencode')
-rwxr-xr-xlocalvideowebencode12
1 files changed, 8 insertions, 4 deletions
diff --git a/localvideowebencode b/localvideowebencode
index 2bd7373..c3b96d6 100755
--- a/localvideowebencode
+++ b/localvideowebencode
@@ -32,12 +32,15 @@
# + support --width and --height,
# resolving other dimension from (explicit or source) aspect ratio
# + make choice of encoders configurable
+# + warn if inferior containers are used, e.g. non-WebM for VP8/VP9
+# <https://trac.ffmpeg.org/ticket/1171#comment:2>
# * tune defaults
# + adapt VP8/VP9 quantizer based on frame size
# <https://developers.google.com/media/vp9/settings/vod#quality>
# + maybe pass option real_time=-2 to melt
# <https://www.reddit.com/r/kdenlive/comments/ka0aak/kdenlive_gpucpu_use_threads_mlt_and_ffmpeg_tips/>
# + maybe reduce threads to "spend" total available cores only once
+# <https://blog.maxwellgale.com/2021/01/30/streaming-video-over-webrtc-using-ffmpeg/>
# + apply application option when using opusenc
# + use joint stereo for low-bitrate Opus speech
# + maybe refine audio bandwidth algorithms
@@ -48,14 +51,14 @@
# <http://www.webmproject.org/docs/encoder-parameters/
# + tune VP9 parameters
# <https://sites.google.com/a/webmproject.org/wiki/ffmpeg/vp9-encoding-guide>
+# + maybe use High profile for H.264
+# <https://stackoverflow.com/questions/21120717/h-264-video-wont-play-on-ios#comment43963026_21121914>
# + compute (or hardcode) html5 codec types, e.g. using mp4v2-utils
# <http://stackoverflow.com/a/16365526>
-# + generalize GOP handling, with keyframes every ~8s by default
-# which fits 48kHz audio at 25 fps (200f) and 30fps (240f),
-# or an "LL" option of 48f (1.92s at 25fps or 1.6s at 30fps)
-# + generalize GOP handling,
+# + generalize GOP handling to use "Closed GOPs",
# with default "normal" option of 200f@25fps or 240f@30fps (both 8s)
# and "low-latency" option of 48f (1.92s at 25fps or 1.6s at 30fps)
+# <https://streaminglearningcenter.com/articles/open-and-closed-gops-all-you-need-to-know.html>
# <https://stackoverflow.com/questions/30979714/how-to-change-keyframe-interval-in-ffmpeg/41735741#41735741>
# <http://anton.lindstrom.io/gop-size-calculator/>
# <https://docs.unified-streaming.com/best-practice/content-preparation.html#recommended-fragment-boundaries-are-aligned-across-all-tracks-audio-video-text>
@@ -83,6 +86,7 @@
# <https://github.com/FFmpeg/FFmpeg/commit/cc929ce>
# <https://github.com/gpac/gpac/commit/4529c60>
# * support realtime streaming a.k.a. "ULL", i.e. less than 0.5s latency
+# <https://blog.maxwellgale.com/2021/01/30/streaming-video-over-webrtc-using-ffmpeg/>
set -e