浏览代码

4dage/4dage-ffmpeg-img2video 0.0.4

gemer 4 年之前
父节点
当前提交
717014e348
共有 1 个文件被更改,包括 21 次插入4 次删除
  1. 21 4
      4dage/4dage-ffmpeg-img2video

+ 21 - 4
4dage/4dage-ffmpeg-img2video

@@ -1,11 +1,13 @@
 #!/bin/bash
 
-version="0.0.3"
+version="0.0.4"
 picsFolder=''
 audioFile=''
 outputName=''
 outputFolder=''
 allowCacheStay=0
+allowOrigin=0
+frameRate='30'
 tempFolder=/tmp/4dage-ffmpeg
 time=$(date "+%Y%m%d-%H%M%S")
 tempFilePrefix="4dage-source-${time}"
@@ -32,6 +34,8 @@ print_usage() {
     echo "-a, --audio=audio file path       audio file path"
     echo "-n, --name=output file name       output file name"
     echo "-o, --output=DIR      specify a directory to store output in"
+    echo "--allow-origin,  allow maintain origin video output"
+    echo "-rate, aka: 24/25/30/50/60 specify output video framerate"
     echo "-v, --version      output verison"
     echo " "
     echo -e "\033[0;33m"
@@ -102,6 +106,15 @@ while test $# -gt 0; do
         fi
         shift
         ;;
+    -rate)
+        shift
+        export frameRate=$1
+        shift
+        ;;
+    --allow-origin)
+        export allowOrigin=1
+        shift
+        ;;
     --audio*)
         export audioFile=$(echo $1 | sed -e 's/^[^=]*=//g')
         shift
@@ -164,15 +177,18 @@ covertVideoTask() {
     allImages="$picsFolder/%d.jpg"
 
     # -i $audioFile -filter_complex "[0:v]scale=1920:-1[vid];[vid]split=2[out1][out2]" \
-
     FFREPORT=file="$outputFolder/$outputName.txt":level=48 ffmpeg -hide_banner -y -i $allImages \
-        -preset superfast -threads 2 -r 30 -framerate 1 -q:v 2 -filter_complex "fps=fps=30" -pix_fmt yuv420p -c:a copy "$outputFolder/$outputName.origin.mp4"
+        -preset superfast -threads 2 -framerate 1 -q:v 2 -pix_fmt yuv420p -c:a copy -r $frameRate "$outputFolder/$outputName.origin.mp4"
     FFREPORT=file="$outputFolder/$outputName.txt":level=48 ffmpeg -hide_banner -y -i "$outputFolder/$outputName.origin.mp4" \
         -i $audioFile -filter_complex "[0:v]scale=1920:-1[vid];[vid]split=2[out1][out2]" \
         -threads 2 -b 1.8M -minrate 1.8M -maxrate 1.8M -bufsize 2M \
         -map '[out1]' -profile:v high -vcodec libx264 -ab 128k "$outputFolder/$outputName.mp4" \
         -map '[out2]' -profile:v high -vcodec libx264 -ab 128k "$outputFolder/$outputName.flv"
-    rm "$outputFolder/$outputName.origin.mp4"
+
+    if test $allowOrigin -eq 0; then
+        rm "$outputFolder/$outputName.origin.mp4"
+    fi
+
     takeVideoCap
     mkVerison
 
@@ -194,6 +210,7 @@ if [ ! -z $picsFolder ] && [ ! -z $audioFile ] && [ ! -z $outputName ] && [ ! -z
     else
         clearDist
     fi
+    echo "frameRate:$frameRate"
     covertVideoTask
     concatAllLogFile
     if command_exists "mediainfo"; then