美文网首页
用ffmpeg给视频批量加水印

用ffmpeg给视频批量加水印

作者: 此方病 | 来源:发表于2019-07-29 17:50 被阅读0次

    加水印

    一开始用
    ffmpeg -i audio_0_1s.avi -vf "movie=logo.png[watermark];[in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] " output.avi
    logo太大了,不知道怎么调整,后来让同事帮忙做了一个调整好位置的logo_L.png,然后直接合成:
    ffmpeg -i audio_0_1s.avi -vf "movie=logo_L.png[watermark];[in][watermark] overlay=0:0[out] " output.avi

    批量处理

    参考:How to batch convert/multiplex any files with ffmpeg
    改了一个脚本:

    for %%a in ("*.*") do ffmpeg -i "%%a" -vf "movie=logo_L.png[watermark];[in][watermark] overlay=0:0[out] " "newfiles\%%~na.mp4"
    pause
    

    在terminal运行脚本

    上面的链接用的是.bat,在linux需要用shell(shell学习指南)编写脚本。

    在terminal运行.sh脚本

    执行Shell脚本(多种方法)

    首先新建一个文件test.sh,然后使用bash命令运行:
    $ bash test.sh

    运行command

    在测试过程中得知command和script不太一样,用以下command成功了:
    for vid in *.avi; do ffmpeg -i "$vid" -vf "movie=logo_L.png[watermark];[in][watermark] overlay=0:0[out] " "${vid%.*}_logo.avi"; done

    附录

    什么是shell

    Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。——Shell是什么?1分钟理解Shell的概念!

    linux的shell,bash,terminal关系

    linux的shell,bash,terminal关系
    bash是shell的其中一种,bash的全称就是Bourne-again shell。而terminal是一个用户终端,用于启动shell,也就是需要打开terminal来使用shell。

    shell命令:可以让shell工具解释的命令(代码)。
    shell脚本:一系列shell命令的集合。

    短格式选项和长格式选项

    Linux 的选项又分为短格式选项和长格式选项。

    • 短格式选项是长格式选项的简写,用一个减号-和一个字母表示,例如ls -l。
    • 长格式选项是完整的英文单词,用两个减号--和一个单词表示,例如ls --all。

    一般情况下,短格式选项是长格式选项的缩写,也就是一个短格式选项会有对应的长格式选项。当然也有例外,比如 ls 命令的短格式选项-l就没有对应的长格式选项,所以具体的命令选项还需要通过帮助手册来查询。
    (来源:Linux Shell命令的基本格式

    常见shell命令

    • ls:列出文件列表
    • echo:输出字符串

    写着写着就变成linux使用指南了,有空的时候分开单独写一篇吧

    相关文章

      网友评论

          本文标题:用ffmpeg给视频批量加水印

          本文链接:https://www.haomeiwen.com/subject/vxzvrctx.html