commit be515b63beb65689295c96d290b68c86980d269e
parent 778761849ce942213944dddecb473ab63e8a6a6e
Author: Alex Balgavy <a.balgavy@gmail.com>
Date: Sun, 4 Aug 2019 23:30:02 +0200
Move ffmpeg functions to a ffmpeg-preset script
Former-commit-id: 05fc375b8f825400ef9e250a6b7a82ae879a5ae3
Diffstat:
4 files changed, 50 insertions(+), 34 deletions(-)
diff --git a/scripts/anythingtogif b/scripts/anythingtogif
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-palette="/tmp/palette.png"
-
-filters="fps=24,scale=0:-1:flags=lanczos"
-
-ffmpeg -v warning -i "$1" -vf "$filters,palettegen" -y "$palette"
-ffmpeg -v warning -i "$1" -i "$palette" -lavfi "$filters [x]; [x][1:v] paletteuse" -y "$2"
diff --git a/scripts/ffmpres b/scripts/ffmpres
@@ -0,0 +1,50 @@
+#!/usr/bin/env bash
+if ! command -v ffmpeg &> /dev/null; then echo "ffmpeg not found" && exit 1; fi
+if ! [ -f "$1" ] ; then echo "$1 not found." && exit 1; fi
+
+main() {
+ case "$1" in
+ *.gif)
+ echo "GIF: $1"
+ process_gif "$1"
+ ;;
+ *.mp4|*.mov|*.webm)
+ echo "VIDEO: $1"
+ process_video "$1"
+ ;;
+ *)
+ ;;
+ esac
+}
+process_gif() {
+ select to_fmt in "MP4"; do
+ case "$to_fmt" in
+ "MP4")
+ ffmpeg -i "$1" -r 30 -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" "${1%%.gif}.mp4"
+ break;;
+ *)
+ break;;
+ esac
+ done
+}
+process_video() {
+ select to_fmt in "MP4" "MP3" "GIF"; do
+ case "$to_fmt" in
+ "MP4")
+ ffmpeg -i "$1" -qscale 0 "${1%%.*}.mp4"
+ break;;
+ "MP3")
+ ffmpeg -i "$1" "${1%%.*}.mp3"
+ break;;
+ "GIF")
+ local palette="/tmp/palette.png"
+ local filters="fps=24,scale=0:-1:flags=lanczos"
+ ffmpeg -v warning -i "$1" -vf "$filters,palettegen" -y "$palette"
+ ffmpeg -v warning -i "$1" -i "$palette" -lavfi "$filters [x]; [x][1:v] paletteuse" -y "${1%%.*}.gif"
+ break;;
+ *)
+ ;;
+ esac
+ done
+}
+main "$@"
diff --git a/scripts/gif2mp4 b/scripts/gif2mp4
@@ -1,5 +0,0 @@
-#!/usr/bin/env bash
-if ! command -v ffmpeg &> /dev/null; then echo "ffmpeg not found" && exit 1; fi
-if ! [ -f "$1" ] ; then echo "$1 not found." && exit 1; fi
-if ! [[ "$1" == *.gif ]]; then echo "$1 is not a gif." && exit 1; fi
-ffmpeg -i "$1" -r 30 -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" "${1%%.gif}.mp4"
diff --git a/shell/commonprofile b/shell/commonprofile
@@ -186,27 +186,6 @@ gemmaster() {
}
-# Webm to mp4 video
-webm_mp4() {
- ffmpeg -i "$1" -qscale 0 "$1".mp4
-}
-
-# Extract audio from mp4
-mp4_mp3() {
- ffmpeg -i "$1" "$1".mp3
-}
-
-# Anything to a gif
-gifify() {
- ffmpeg -i "$1" -r 25 -f image2pipe -vcodec ppm - | \
- convert -delay 4 -loop 0 - output.gif
- }
-
-# Gif to mp4
-gif_mp4() {
- ffmpeg -i "$1" -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" "$(echo "$1"|cut -d. -f1).mp4"
-}
-
# Extract any archive
extract () {
if [ -f "$1" ] ; then