منبع اصلی نوشتار زیر در این لینک قرار دارد

یک اسکریپت برای ایجاد واترمارک روی ویدیو

نیاز داشتم به اینکه یک واترمارک روی یک سری ویدیوهای آموزشی قرار بدم. سرچ کردم و روشش رو با ffmpeg پیدا کردم. منتها اگه میخواستی برای هر ویدیو اون دستور طولانی رو اجرا کنی سخت میشد! برای همین از دوستان انجمن فارسی آرچ کمک گرفتم تا یک اسکریپت داشته باشم برای اینکار. آقای Arcush زحمت کشیدن و این اسکریپت رو ساختن.

اول اینکه دستور اولی به این شکل بود:

 ffmpeg -i '/PATH/TO/INPUT.flv'  -i /PATH/TO/watermark.png -filter_complex '[0:v][1:v]overlay=15:10[outv]' -map [outv] -map 0:a -c:a copy -c:v libx264 -crf 22 -preset veryfast output.mp4



دستور بالا واترمارکی که در مسیر مشخص شده قرار گرفته روی فایلی که مورد نظر ماست قرار میده و اون رو با نام output.mp4 در پوشه home کاربر میسازه. چیز جالبیه. اما راحت نیست.

#!/bin/bash 
find -name "*.*" -exec ffmpeg -i {} -i watermark.png -filter_complex '[0:v][1:v]overlay=15:10[outv]' -map [outv] -map 0:a -c:a copy -c:v libx264 -crf 22 -preset veryfast {}-new.mp4 \;




اگه ما دستور بالا رو به این شکل در بیاریم، و اون رو در یک اسکریپت مثلا با نام addwm قرار بدیم، و اون رو در پوشه ای که فیلمهای ما قرار دارند اجرا کنیم، فایل watermark.png که باید در فولدر ویدیوها موجود باشه به تمام ویدیوهای موجود در پوشه ای که اسکریپت در اون ایجاد میشه اضافه میشه. که این هم خوبه، ولی چیزی که میخواستم اسکریپت پایینی بود که دوست خوبم در انجمن آرچ اون رو نوشت:

#!/bin/bash

path_of_first_file=$(dirname "$1")
name_of_first_file=$(basename "$1")

new_name="new_$(echo "$name_of_first_file")"
new_output=$(echo "$path_of_first_file/$new_name")

ffmpeg -i "$1"  -i "$2" \
-filter_complex '[0:v][1:v]overlay=15:10[outv]' -map [outv] -map 0:a \
-c:a copy -c:v libx264 -crf 22 -preset veryfast "$new_output"

echo
echo "your converted file will be save in the directory of the main media file; nemely: " "$path_of_first_file"















با اسکریپت بالا میتونیم دو مقدار فایل ویدیویی و فایل واترمارک رو بهش بدیم، تا یک فایل حاوی واترمارک با نام جدید در کنار فایل ویدیوی قبلی ایجاد بشه. مثلا:

addwm /PATH/TO/INPUT.flv /PATH/TO/watermark.png