From 8ce409aacf1be223c567fbe9c8c4e51cd7511e78 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Tue, 9 Feb 2021 22:27:56 +0100 Subject: tidy: update TODOs --- localvideowebencode | 94 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 64 insertions(+), 30 deletions(-) diff --git a/localvideowebencode b/localvideowebencode index 624e895..75dfcdb 100755 --- a/localvideowebencode +++ b/localvideowebencode @@ -19,36 +19,70 @@ # Recommends: moreutils vainfo vpx-tools vorbis-tools opus-tools # # TODO: -# * Offer to skip rendering again if an output file exist already. -# * Support --width and --height, resolving the other part from input -# or forced aspect ratio. -# * Check and fail if all needed tools are not available. -# * Test if beneficial to apply real_time=-2. -# * Normalize each infile separately when xml fed as infile keeps sync. -# Maybe as workaround re-feed audio separately from xml, as done at -# . -# * Resolve flash player to use. -# * Make choice of encoders configurable. -# * Figure out how to apply application option when using opusenc. -# * Handle channels per-codec for low-bitrate joint stereo Opus speech. -# * Double-check audio bandwidth algorithms: -# http://trac.ffmpeg.org/wiki/Encode/HighQualityAudio -# * Change VP8/VP9 bandwidth algorithm: -# Use https://developers.google.com/media/vp9/settings/vod/ -# * Tune VP8 parameters: -# http://www.webmproject.org/docs/encoder-parameters/ -# * Tune VP9 parameters: -# https://sites.google.com/a/webmproject.org/wiki/ffmpeg/vp9-encoding-guide -# * Support DASH: -# https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/instructions-to-playback-adaptive-webm-using-dash -# * Support watermark -# * Support live streaming - i.e. from (maybe faked) endless source -# + Lipsync may require single stream of equally chunked tracks: -# https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/instructions-to-do-webm-live-streaming-via-dash -# * Support realtime streaming - i.e. with less than 200ms latency -# * Compute (or hardcode) html5 codec types: -# + Use mp4v2-utils -# + http://stackoverflow.com/a/16365526 +# * improve workflow +# + check initially and fail if all needed tools are not available +# + offer to skip rendering again if an output file exist already +# + maybe support extracting keyframes to aid in picking cover image +# +# +# + offer to produce a full ladder at once +# +# +# * improve configurability +# + support --width and --height, +# resolving other dimension from (explicit or source) aspect ratio +# + make choice of encoders configurable +# * tune defaults +# + adapt VP8/VP9 quantizer based on frame size +# +# + maybe pass option real_time=-2 to melt +# +# + maybe reduce threads to "spend" total available cores only once +# + apply application option when using opusenc +# + use joint stereo for low-bitrate Opus speech +# + maybe refine audio bandwidth algorithms +# +# + change VP8/VP9 bandwidth algorithm +# +# + tune VP8 parameters: +# +# + compute (or hardcode) html5 codec types, e.g. using mp4v2-utils +# +# + 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, +# 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) +# +# +# +# * players +# + disable flash player by default +# + support HLS player, when HLS is supported +# +# * normalize each infile separately when xml fed as infile keeps sync +# maybe as workaround re-feed audio separately from xml, as done at +# +# * support DASH +# +# * support watermark +# * support superstable live streaming, e.g. (maybe faked) endless source +# + lipsync may require single stream of equally chunked tracks +# +# * support adaptive streaming +# + compute ladder from mathematical model +# as in "Optimal design of encoding profiles for ABR streaming" +# +# * support low-latency streaming a.k.a. "LL", i.e. 3-5s latency +# + LL-HLS +# +# + CMAF, using either fmpeg or (when released) GPAC +# +# +# * support realtime streaming a.k.a. "ULL", i.e. less than 0.5s latency set -e -- cgit v1.2.3