windows - ffmpeg - 2 个文件 - 转换 -> 连接 -> 水印不起作用

标签 windows batch-file ffmpeg concatenation converter

我目前正在尝试向我的视频批量添加 outros 和水印。
我是新来的。

这是我将视频转换为相同格式的代码

cd source

for %%f in (*.mp4) do (
    ffmpeg -i "%%f" -c:v libx264 -b:v 1500k -s 720x720 -crf 22 -g 1 -keyint_min 1 -preset slow -shortest -ar 44100 "../converted/c_%%f"
)

cd outro
for %%f in (*.mp4) do (
    ffmpeg -i "%%f" -c:v libx264 -b:v 1500k -s 720x720 -crf 22 -g 1 -keyint_min 1 -preset slow -shortest -ar 44100 "../../converted/outro/c_%%f"
)
call concat.bat
pause

这是我用来连接文件的代码:
cd converted   
   for %%f in (*.mp4) do (
      echo.>%%f.list
      echo file '%%f' >> %%f.list
      echo file 'c_outro.mp4' >> %%f.list
    )


for %%f in (*.list) do (
  ffmpeg -f concat -i %%f -c copy concatenated/%%f.mp4
) 
call final.bat
pause

这是我用来添加水印的代码:
    cd concatenated 
for %%f in (*.list) do 
    ffmpeg -i "%%f" -i logo.png -filter_complex "overlay=10:10" "../../final_%%f"
) 

pause

我在哪里做错了?它可以毫无问题地转换视频并将它们连接起来,但给它们加水印似乎不起作用。请指教。

最佳答案

正如@LN 所说,在一个命令中完成。

ffmpeg -i main.mp4 -i outro.mp4 -loop 1 -i logo.png
 -filter_complex "[0]scale=720:720,setsar=1[m];[1]scale=720:720,setsar=1[o];
                  [m][0:a][o][1:a]concat=n=2:v=1:a=1[v][a];[v][2]overlay=10:10:shortest=1[vid]"
 -c:v libx264 -ar 44100 -map [vid] -map [a] "../converted/final_%%f"

当然,您将不得不遍历源视频,就像在 Q 中一样:
for %%f in (*.mp4) do (
       ffmpeg -i "%%f" -i outro.mp4 -loop 1 -i logo.png
     -filter_complex "[0]scale=720:720,setsar=1[m];[1]scale=720:720,setsar=1[o];
                      [m][0:a][o][1:a]concat=n=2:v=1:a=1[v][a];[v][2]overlay=10:10:shortest=1[vid]"
     -c:v libx264 -ar 44100 -map [vid] -map [a] "../converted/final_%%f"
)

最好将 outro 转换一次以匹配源视频属性:
ffmpeg -i outro.mp4 -vf scale=720:720,setsar=1 -ar 44100 -g 1 outro-new.mp4

如果您这样做,请跳过 [1]scale=720:720,setsar=1[o];并替换 [o][1:v]

关于windows - ffmpeg - 2 个文件 - 转换 -> 连接 -> 水印不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39216906/

相关文章:

.net - 受限用户应用程序崩溃

windows - 将 Subversion (SVN) 符号链接(symbolic link)文本文件转换为 NTFS 符号链接(symbolic link)的批处理脚本

c# - 从 Windows 服务运行批处理脚本以转储数据库

Mac 上的 C# 启动进程 - FFMPEG - 退出代码 1

video - FFMPEG - 使用方向元数据进行移动录制

java - 定制标题栏

windows - 使用 Qt 的非标准窗口

windows - "Official Meteor for Windows Preview"是否支持移动包?

windows - 如何批量重命名子目录中特定文件类型的文件?

ffmpeg - 有没有办法使用 ffmpeg 从图像缓冲区创建视频流(不保存到磁盘)?