0.0做了一些课程,但是想留点自己印记,一个个加太费劲了,固定的水印加小了会被去除,加大了影响观感…想找一个可以加那种水印显示几秒就消失,然后又出现的工具…
我知道PR之类的剪辑软件,主要是想一个批量- - 手动加太麻烦了.
0.0做了一些课程,但是想留点自己印记,一个个加太费劲了,固定的水印加小了会被去除,加大了影响观感…想找一个可以加那种水印显示几秒就消失,然后又出现的工具…
我知道PR之类的剪辑软件,主要是想一个批量- - 手动加太麻烦了.
做课程的时候,放个标记在旁边多完美
之前 是小众 还是吾爱破解来着忘记 有个可以在鼠标上加一个 跟随图片的功能 也可以是动图
就相当于是一个随机水印了
直接做一个鼠标指针,鼠标到那都是你的水印
问题是已经做好了都。。。
要不试试去问问bing,这时我问出来的答案。
# 设置变量
$videoFile = "input.mp4"
$watermarkFile = "watermark.png"
$outputFile = "output.mp4"
# 获取视频文件的时长
$duration = ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 $videoFile
# 设置水印添加的次数
$watermarkCount = 3
# 初始化 filter_complex 参数
$filterComplex = "[0:v][1:v]"
# 循环添加水印
for ($i = 0; $i -lt $watermarkCount; $i++) {
# 随机生成水印添加的时间和位置
$randomTime = Get-Random -Minimum 0 -Maximum $duration
$xPos = Get-Random -Minimum 0 -Maximum 1920 # 根据视频分辨率修改
$yPos = Get-Random -Minimum 0 -Maximum 1080 # 根据视频分辨率修改
# 更新 filter_complex 参数
$filterComplex += " overlay=$xPos:$yPos:enable='between(t,$randomTime,$randomTime+5)'"
}
# 添加 filter_complex 参数的结尾
$filterComplex += " [out]"
# 使用 FFmpeg 添加水印
ffmpeg -i $videoFile -i $watermarkFile -filter_complex $filterComplex -map "[out]" -map 0:a -codec:a copy $outputFile
我的想法是 你自己用aegisub或者arctime这种做字幕的,自己做个出现几秒 然后消失 还随便转移位置的文字logo的字幕。
然后用小丸工具箱之类的批量压制一下……(【视频压制】小丸工具箱的操作和批量压制 - 哔哩哔哩 )
不过还是在录视频的时候,用那种跟随鼠标的水印比较好。(https://www.52pojie.cn/forum.php?mod=viewthread&tid=1209199 )
感觉楼上两位的想法都挺好的
0.0字幕可以达到这个效果吗?? 感谢您的回复,这给了我一个思路…但是字幕的制作,是否会导致别人也可以随便关闭呢 ??因为我看电影的时候,有些内置字幕,便是可以使用播发器的字幕功能关闭的
感谢您的回复. 我也尝试问过chatgpt,但是它给我的答案…我会尝试一下这个代码!
你用起来了吗,如果你用linux的话,或者pc上面有bash环境的话,我可以帮你写一个bash脚本
powershell还没掌握
感谢您的回复哈。我已经测试了这个代码,好像不能执行?
我把它放入txt中,改成sh后缀,使用powershell执行的时候,会让我选择一个终端,然后我选择git bash后,它并不能执行。
然后,我尝试让chatgpt帮我改这段代码,并增加一个可以遍历选择文件夹下的文件夹里的视频的功能,它给的代码,还是错误的,我尝试升级了我的powershell版本,FFmpeg也正常配置了,依旧报错
上面的是powershell的代码,我改了一个bash的,等我测试一下贴上来
我使用了arctime 这个软件,稍稍摸索了一下,应该会有更高级的用法?主要一个难点在于,我不知道该怎么去把字幕变成适应视频长度和画面的。
感谢
忽悠着bing和claude写完了这个脚本。
./random.sh 视频路径 png图片路径 水印次数 输出名
输出名是可选的。
claude写一些简单的函数,比如get_duration是没有问题的,但是对于FFmpeg的关键设置总会有错误,最后使用bing做了一下纠正(为啥一开始就不用bing)。
总的来说,bing和claude都是手动修改一下才好用,直接拿来用是有一点难受的。
#!/usr/bin/env bash
get_duration() {
local _v=${1}
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 ${_v} | cut -d. -f1
}
get_resolution() {
local _v=${1}
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 ${_v}
}
generate_time_intervals() {
local T=$1 # total
local C=$2 # count
local len=$((T / C))
local start=0
local offset=0
for ((i=0; i<C; i++))
do
offset=$((RANDOM % (len / 2)))
end=$((start + len + offset))
echo -n "$start.$end "
start=$((end + 1))
done
}
watermark() {
local _video=${1}
local _img=${2}
local _loop=${3:-10}
local _out=${4:-out.ma4}
local cmd_base="ffmpeg -i ${_video} -i ${_img}"
local overlay_cmd=""
local dur=$(get_duration ${_video})
local res=$(get_resolution ${_video})
local width=$(echo ${res} | cut -d x -f1)
local height=$(echo ${res} | cut -d x -f2)
local _s=0
local _e=0
local input="[0:v]"
for i in $(generate_time_intervals ${dur} ${_loop})
do
_s=$(echo ${i} | cut -d. -f1)
_e=$(echo ${i} | cut -d. -f2)
local _x=$((RANDOM % width))
local _y=$((RANDOM % height))
overlay_cmd="${overlay_cmd}${input}[1:v] overlay=x=${_x}:y=${_y}:enable='between(t,${_s},${_e})'[v${i}];"
input="[v${i}]"
done
overlay_cmd="${overlay_cmd%?}\""
#local cmd="${cmd_base} -filter_complex \"${overlay_cmd} -map \"${input}\" out.mp4"
local cmd="${cmd_base} -filter_complex \"${overlay_cmd} -c:v libx264 -crf 18 -map \"${input}\" ${_out}"
echo ${cmd}
eval ${cmd}
}
usage() {
echo -e "Usage:\n\t $0 video png count [out_name]\n"
}
usage
watermark $*
一个很暴力的方法是
只要你把字幕时间做的够长(比如做成了五个小时的字幕文件),你在压制的时候,视频少于五小时都就没问题,多出视频时长的字幕部分会被抛弃。只要做了一个后面可以一直用。
而视频的分辨率,用aegisub的话会随字幕设定的分辨率来匹配视频的,不过你要是电脑录屏,分辨率一般是固定的吧。
字幕可以有很多自定义,颜色、大小、位置、字体、透明度、描边、动效等等,有需要的话我可以帮你做个。
(你说的播放器关闭内置字幕那是软字幕,用arctime直接导出 或者小丸工具箱压制 是硬字幕,无法关闭)
非常抱歉这么久后才回复您,遇到了一些事情,好久没有登录小众了,抱歉! 如果可以的话,希望您能帮我做一个。我在那之后依然寻找了一下,依旧没有好的解决方案。FFmpeg对我来说,可能太难了,总是出错。 分辨率,大部分是固定的,但也有一些是那种只录制窗口的 ,所以相对的话,分辨率不是那么固定。
抱歉这么久回复您,那天我在我的电脑上测试了一下,总是出现错误,我尝试过,让chatgpt帮我生成一个解决方案,比如,生成一个同样效果的Python gui程序, 还是,有点为难它了,之后我碰到了一些事情,无暇他顾,放了一段时间,今天才想起问题还没有完结。
你给个最常用的分辨率和 水印的文字内容吧 我做一个