浏览代码

overlay 0.1.6

gemer 4 年之前
父节点
当前提交
4514efcd0a
共有 2 个文件被更改,包括 28 次插入12 次删除
  1. 14 6
      4dage/4dage-ffmpeg-overlay
  2. 14 6
      4dage/overlay-ffmpeg

+ 14 - 6
4dage/4dage-ffmpeg-overlay

@@ -1,6 +1,6 @@
 #!/bin/bash
 
-version="0.1.5.1"
+version="0.1.6"
 videoFile=''
 picFile=''
 outputName=''
@@ -162,14 +162,22 @@ takeVideoCap() {
 covertVideoTask() {
     videoFileType=${videoFile##*.}
     picFileType=${picFile##*.}
-
+    vpFormat='libvpx'
+    detectFormat=$(ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 $videoFile)
+    echo "输入格式":$detectFormat
+    if [ $detectFormat = 'vp9' ]; then
+        vpFormat="libvpx-vp9"
+    fi
+    if [ $detectFormat = 'vp8' ]; then
+        vpFormat="libvpx"
+    fi
     # FFREPORT=file="$outputFolder/$outputName.$videoFileType.txt":level=48 ffmpeg -hide_banner -i $picFile -c:v libvpx -i $videoFile -filter_complex "overlay=(W-w)/2:(H-h)/2,pad=ceil(iw/2)*2:ceil(ih/2)*2" -vcodec libx264 "$outputFolder/$outputName.mp4" -y
     # FFREPORT=file="$outputFolder/$outputName.$videoFileType.txt":level=48 ffmpeg -hide_banner -i $picFile -c:v libvpx -i $videoFile -filter_complex "overlay=(W-w)/2:(H-h)/2,pad=ceil(iw/2)*2:ceil(ih/2)*2" -vcodec libx264 "$outputFolder/$outputName.flv" -y
 
-    FFREPORT=file="$outputFolder/$outputName.$videoFileType.txt":level=48 \ 
-    ffmpeg -hide_banner -y -i $picFile -c:v libvpx -i $videoFile -filter_complex "[1:v][0:v]scale2ref[image][video];[video][image]overlay=0:0[v];[v]scale='2*trunc(iw/2)':'2*trunc(ih/2)'[v];[v]split=2[out1][out2]" \
-        -preset superfast -threads 2 -b 0.5M -minrate 0.5M -maxrate 0.5M -bufsize 1M \
-        -map '[out1]' -map 1:a? -vcodec libx264 -ab 128k "$outputFolder/$outputName.mp4" -map '[out2]'  -map 1:a?  -vcodec libx264 -ab 128k "$outputFolder/$outputName.flv"
+    FFREPORT=file="$outputFolder/$outputName.$videoFileType.txt":level=48 \
+        ffmpeg -hide_banner -y -i $picFile -c:v $vpFormat -i $videoFile -filter_complex "[1:v][0:v]scale2ref[image][video];[video][image]overlay=0:0[v];[v]scale='2*trunc(iw/2)':'2*trunc(ih/2)'[v];[v]split=2[out1][out2]" \
+        -threads 2 -b 1.8M -minrate 1.8M -maxrate 1.8M -bufsize 2M \
+        -map '[out1]' -map 1:a? -c:v libx264 -ab 128k "$outputFolder/$outputName.mp4" -map '[out2]' -map 1:a? -c:v libx264 -ab 128k "$outputFolder/$outputName.flv"
 
     # FFREPORT=file="$outputFolder/$outputName.$videoFileType.txt":level=48 \
     # ffmpeg -hide_banner -i $picFile -c:v libvpx -i $videoFile -filter_complex "[1:v][0:v]scale2ref[image][video];[video][image]overlay[v];[v]scale='2*trunc(iw/2)':'2*trunc(ih/2)'" \

+ 14 - 6
4dage/overlay-ffmpeg

@@ -1,6 +1,6 @@
 #!/bin/bash
 
-version="0.1.5.1"
+version="0.1.6"
 videoFile=''
 picFile=''
 outputName=''
@@ -162,14 +162,22 @@ takeVideoCap() {
 covertVideoTask() {
     videoFileType=${videoFile##*.}
     picFileType=${picFile##*.}
-
+    vpFormat='libvpx'
+    detectFormat=$(ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 $videoFile)
+    echo "输入格式":$detectFormat
+    if [ $detectFormat = 'vp9' ]; then
+        vpFormat="libvpx-vp9"
+    fi
+    if [ $detectFormat = 'vp8' ]; then
+        vpFormat="libvpx"
+    fi
     # FFREPORT=file="$outputFolder/$outputName.$videoFileType.txt":level=48 ffmpeg -hide_banner -i $picFile -c:v libvpx -i $videoFile -filter_complex "overlay=(W-w)/2:(H-h)/2,pad=ceil(iw/2)*2:ceil(ih/2)*2" -vcodec libx264 "$outputFolder/$outputName.mp4" -y
     # FFREPORT=file="$outputFolder/$outputName.$videoFileType.txt":level=48 ffmpeg -hide_banner -i $picFile -c:v libvpx -i $videoFile -filter_complex "overlay=(W-w)/2:(H-h)/2,pad=ceil(iw/2)*2:ceil(ih/2)*2" -vcodec libx264 "$outputFolder/$outputName.flv" -y
 
-    FFREPORT=file="$outputFolder/$outputName.$videoFileType.txt":level=48 \ 
-    ffmpeg -hide_banner -y -i $picFile -c:v libvpx -i $videoFile -filter_complex "[1:v][0:v]scale2ref[image][video];[video][image]overlay=0:0[v];[v]scale='2*trunc(iw/2)':'2*trunc(ih/2)'[v];[v]split=2[out1][out2]" \
-        -preset superfast -threads 2 -b 0.5M -minrate 0.5M -maxrate 0.5M -bufsize 1M \
-        -map '[out1]' -map 1:a? -vcodec libx264 -ab 128k "$outputFolder/$outputName.mp4" -map '[out2]'  -map 1:a?  -vcodec libx264 -ab 128k "$outputFolder/$outputName.flv"
+    FFREPORT=file="$outputFolder/$outputName.$videoFileType.txt":level=48 \
+        ffmpeg -hide_banner -y -i $picFile -c:v $vpFormat -i $videoFile -filter_complex "[1:v][0:v]scale2ref[image][video];[video][image]overlay=0:0[v];[v]scale='2*trunc(iw/2)':'2*trunc(ih/2)'[v];[v]split=2[out1][out2]" \
+        -threads 2 -b 1.8M -minrate 1.8M -maxrate 1.8M -bufsize 2M \
+        -map '[out1]' -map 1:a? -c:v libx264 -ab 128k "$outputFolder/$outputName.mp4" -map '[out2]' -map 1:a? -c:v libx264 -ab 128k "$outputFolder/$outputName.flv"
 
     # FFREPORT=file="$outputFolder/$outputName.$videoFileType.txt":level=48 \
     # ffmpeg -hide_banner -i $picFile -c:v libvpx -i $videoFile -filter_complex "[1:v][0:v]scale2ref[image][video];[video][image]overlay[v];[v]scale='2*trunc(iw/2)':'2*trunc(ih/2)'" \