]> Sergey Matveev's repositories - nnn.git/commitdiff
video thumbnails in preview-tui
authorjohnnybash <georgpfahler@wachenzell.org>
Mon, 21 Dec 2020 15:24:18 +0000 (16:24 +0100)
committerjohnnybash <georgpfahler@wachenzell.org>
Mon, 21 Dec 2020 15:24:18 +0000 (16:24 +0100)
plugins/preview-tui

index 255c35dc279fbdeaaa5f7f4fd1c3612a47479cee..7ef9566b47e4f9cf9347fdda25ead42b0aa84a3d 100755 (executable)
 #                To use:
 #                1. install pistol
 #                2. set/export $USE_PISTOL as 1
+#    - optional: ffmpegthumbnailer for video thumbnails (https://github.com/dirkvdb/ffmpegthumbnailer).
+#                To use:
+#                1. install ffmpegthumbnailer
+#                2. set/export USE_VIDEOTHUMB as 1
 #
 # Usage:
 #   You need to set a NNN_FIFO path and a key for the plugin with NNN_PLUG,
@@ -63,6 +67,7 @@ SPLIT="$SPLIT"  # you can set a permanent split here
 TERMINAL="$TERMINAL"  # same goes for the terminal
 USE_SCOPE="${USE_SCOPE:-0}"
 USE_PISTOL="${USE_PISTOL:-0}"
+USE_VIDEOTHUMB="${USE_VIDEOTHUMB:-0}"
 PAGER="${PAGER:-less -R}"
 [ "$PAGER" = "most" ] && PAGER="less -R"
 
@@ -163,6 +168,19 @@ preview_file () {
             else
                 fifo_pager print_bin_info "$1"
             fi
+        elif [ "${mimetype%%/*}" = "video" ] && [ "$USE_VIDEOTHUMB" -ne 0 ] && exists ffmpegthumbnailer; then
+            ffmpegthumbnailer -s 0 -i "$1" -o "/tmp/videothumb.png"
+            if [ "$TERMINAL" = "kitty" ]; then
+                     # Kitty terminal users can use the native image preview method.
+                     kitty +kitten icat --silent --transfer-mode=stream --stdin=no \
+                          "/tmp/videothumb.png" &
+                elif exists catimg; then
+                     catimg "/tmp/videothumb.png"
+                elif exists viu; then
+                     viu -t "/tmp/videothumb.png"
+                else
+                     fifo_pager print_bin_info "$1"
+            fi
         elif [ "$mimetype" = "application/zip" ] ; then
             fifo_pager unzip -l "$1"
         elif [ "$ext" = "gz" ] || [ "$ext" = "bz2" ] ; then