该错误是由于在分割视频流的中间创建黑色半尺寸框架而引发的。
该脚本的目的是将双鱼眼图像向上移动20像素。
该文件将双鱼眼视频分成左和右,然后从顶部向下裁剪每半 20 像素,然后叠加到“黑色”半框上,然后将左和右图像水平堆叠成新的视频 OUT.mp4
@echo off
set "W=3840" ::Width of video
set "H=1920" ::Height of video
set "WC=1920" ::Width of crop
set "HC=20" ::Height of crop
set "X=0" ::X coordinate of overlay
set "Y=0" ::Y coordinate of overlay
ffmpeg -i %1 -filter_complex "split[left][right]; [left]crop=ih:iw/2:0:0[left_half];[right]crop=ih:iw/2:iw/2:0[right_half];[left_half]crop=%WC%:%H%-%HC%:0:%HC%[left_crop];[right_half]crop=%WC%:%H%-%HC%:0:%HC%[right_crop];color=black:size=%H%x%H%[bg];[bg][left_crop]overlay=%X%:%Y%:shortest=1[left_overlayed];[bg][right_crop]overlay=%X%:%Y%:shortest=1[right_overlayed];[left_overlayed][right_overlayed]hstack=shortest=1[out]" -y OUT.mp4
pause
::
::
错误信息如下:
The error is [mov,mp4,m4a,3gp,3g2,mj2 @ 00000207a61d4040] Invalid stream specifier: bg.
Last message repeated 1 times
Stream specifier 'bg' in filtergraph description split[left][right]; [left]crop=ih:iw/2:0:0[left_half];[right]crop=ih:iw/2:iw/2:0[right_half];[left_half]crop=1920:1920-20:0:20[left_crop];[right_half]
crop=1920:1920-20:0:20[right_crop];color=black:size=1920x1920[bg];[bg][left_crop]overlay=0:0:shortest=1[left_overlayed];[bg][right_crop]overlay=0:0:shortest=
1[right_overlayed];[left_overlayed][right_overlayed]hstack=shortest=1 matches no streams.
答案1
黑色半框需要单独输入,这样才有效。
ffmpeg -i %1 -f lavfi -i color=black:size=%H%x%H% -filter_complex "[0]split[left][right]; [left]crop=ih:iw/2:0:0[left_half];[right]crop=ih:iw/2:iw/2:0[right_half];[left_half]crop=%WC%:%H%-%HC%:0:%HC%[left_crop];[right_half]crop=%WC%:%H%-%HC%:0:%HC%[right_crop];[1][left_crop]overlay=%X%:%Y%:shortest=1[left_overlayed];[1][right_crop]overlay=%X%:%Y%:shortest=1[right_overlayed];[left_overlayed][right_overlayed]hstack=shortest=1" -y OUT.mp4
答案2
回应此评论:使用 [bg] 创建覆盖后,它会被消耗掉,如果您打算使用它两次,则必须使用另一个 [bg]split[bg1][bg2]。– Ricardo Bohner
该脚本确实有效:
ffmpeg -i %1 -filter_complex "split[left][right]; [left]crop=ih:iw/2:0:0[left_half];[right]crop=ih:iw/2:iw/2:0[right_half];[left_half]crop=%WC%:%H%-%HC%:0:%HC%[left_crop];[right_half]crop=%WC%:%H%-%HC%:0:%HC%[right_crop];color=black:size=%H%x%H%[bg0];[bg0][left_crop]overlay=%X%:%Y%:shortest=1[left_overlayed];color=black:size=%H%x%H%[bg1];[bg1][right_crop]overlay=%X%:%Y%:shortest=1[right_overlayed];[left_overlayed][right_overlayed]hstack=shortest=1" -y OUT.mp4