document current most important todo for jellyfin streaming master
authorJacob Casper <dev@jacobcasper.com>
Tue, 3 May 2022 17:40:29 +0000 (12:40 -0500)
committerJacob Casper <dev@jacobcasper.com>
Tue, 3 May 2022 17:40:29 +0000 (12:40 -0500)
HLS + jellyfin still transcode when the container is piped via ssh like
this. I attempted to use mkclean(8) and mkvalidator(8) from Matroska
streaming project but they did not fix anything. Using ffmpeg and
skipping any additional muxing allows for the hard work to be done on a
beefier machine, and a quick 150-200x repacking to be done on the
weaker headless box.

hevc-pipeline.sh

index a6cc09a..4508e7a 100755 (executable)
@@ -23,3 +23,8 @@ printf '%s\0' "${hevc_films[@]}" | xargs -0 -P 1 -I@ bash -c 'ssh mbp '"'"'cat "
         -f matroska \
         - | \
         ssh mbp '"'"'cat > "@".new'"'"''
+# TODO this cat generates an .mkv container with invalid timestamps or something else Jellyfin + HLS
+# can't understand. Requires reconstruction on the other side.
+# it's often re-encoded at >150x speed so it's not important, but maybe it should be piped to ffmpeg
+# on the other system automatically.
+# ffmpeg -i $out.mkv.new -map 0 -vcodec copy -acodec copy $out.mkv.new.mkv