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 a6cc09abcd6c20c708adca2286984b6d67d0db6b..4508e7a79b074d1650ff07a668c3ad9a20e63d3d 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