吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1859|回复: 11
收起左侧

如何使用ffmpeg在时长都不同的视频结尾处添加5秒的文字水印?

[复制链接]
鱼人大大 发表于 2021-1-14 00:08
200吾爱币
我需要在时长都不同的视频的结尾初添加5秒的文字水印,麻烦您编写一个基于ffmpeg的拖入型bat脚本,具体需求如下。
有若干个时长不同的视频,有1分多钟、3分多钟等,现在需要在每条视频的结尾5秒加入文字水印,辟如1分20秒视频,要在1分15秒至1分20秒之间加入文字水印,水印位置为右下角,白色,黑体,大小适中即可。文字最好支持中文。
麻烦大佬了。
这是一些参考参数,
-vf "drawtext=fontfile=123.ttf: text='123':x=100:y=10:fontsize=50:fontcolor=white:shadowy=3:enable='between(t,0,5)'[out]"
参照这个写法,把要显示的时间值写在between函数里,第一个参数固定是t秒,第二个参数0是开始时间,第三个参数5是结束时间。
ffprobe file.mp4 -show_entries format=duration -of compact=p=0:nk=1 -v 0
这是获取视频总秒数的命令
windows的bat脚本我不知道怎么传参数了,把这个时间减去5秒,然后带到之前betwenn的第二个参数里

最佳答案

查看完整内容

你试试改下bat文件的编码,改成gbk或utf8看看。如果还是乱码,那就可能是fmpeg.exe找不到字体文件,把字体放到cmd运行的当前目录,或者放到和ffmpeg.exe同一个目录下试试 下面是支持拖入多个文件的bat代码: [mw_shl_code=shell,true]::ffmpeg.exe路径下要有和下面命令行中相应的中文字体,如simhei.ttf,否则会有乱码 ::支持拖入多个文件,但bat可引用参数最大数量限制为9个,因此一次性拖入超过9个文件就可能出错 setlocal ...

本帖被以下淘专辑推荐:

  • · 好帖|主题: 540, 订阅: 84

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

6f7a8d 发表于 2021-1-14 00:08
本帖最后由 6f7a8d 于 2021-1-14 13:08 编辑
鱼人大大 发表于 2021-1-14 11:09
牛批牛批,大佬,还剩一个问题,我使用了那个字体,但还是有乱码.....能不能再想想办法嘞0.0
还有我ctrl ...

你试试改下bat文件的编码,改成gbk或utf8看看。如果还是乱码,那就可能是fmpeg.exe找不到字体文件,把字体放到cmd运行的当前目录,或者放到和ffmpeg.exe同一个目录下试试
下面是支持拖入多个文件的bat代码:
[Shell] 纯文本查看 复制代码
::ffmpeg.exe路径下要有和下面命令行中相应的中文字体,如simhei.ttf,否则会有乱码
::支持拖入多个文件,但bat可引用参数最大数量限制为9个,因此一次性拖入超过9个文件就可能出错
setlocal enabledelayedexpansion
for %%j in (%*) do (
	ffprobe.exe  "%%j" -show_entries format=duration -of compact=p=0:nk=1 -v 0 >>tmp.txt
	for /f %%i in (tmp.txt)  do (
		set target=%%i
		ffmpeg -i %%j -y -vf "drawtext=fontfile=simhei.ttf: text='watermark我是水印':x=10:y=10:fontsize=50:fontcolor=white:shadowy=3:enable='between(t,!target!-5,!target!)'[out]" %%~dpj%%~nj_output%%~xj
	)
	del /f /s /q tmp.txt
) 
pause
6f7a8d 发表于 2021-1-14 10:17
6f7a8d 发表于 2021-1-14 10:20
6f7a8d 发表于 2021-1-14 10:17
cmd的变量传递真是坑啊,不过幸好还是完成了

楼主应该知道ffmpeg和bat文件怎么用吧 那我就不做多余的说明了:
链接: https://pan.baidu.com/s/1svtnldek2cVpIeo67l315A 提取码: 3e9n 复制这段内容后打开百度网盘手机App,操作更方便哦
 楼主| 鱼人大大 发表于 2021-1-14 11:09
本帖最后由 鱼人大大 于 2021-1-14 11:11 编辑
6f7a8d 发表于 2021-1-14 10:20
楼主应该知道ffmpeg和bat文件怎么用吧 那我就不做多余的说明了:
链接: https://pan.baidu.com/s/1svtnl ...

牛批牛批,大佬,还剩一个问题,我使用了那个字体,但还是有乱码.....能不能再想想办法嘞0.0
还有我ctrl拖入了好几条视频,但就转出来一条0.0
 楼主| 鱼人大大 发表于 2021-1-14 12:55
6f7a8d 发表于 2021-1-14 12:32
字体文件需要放到cmd运行的当前目录下,以免fmpeg.exe找不到字体文件。或者,你试试改下bat文件的编码, ...

大佬  还是有些不对,我拖入了五条视频,脚本循环对同一条视频进行了五次编码,其它四条视频都没有变化。
6f7a8d 发表于 2021-1-14 13:05
鱼人大大 发表于 2021-1-14 12:55
大佬  还是有些不对,我拖入了五条视频,脚本循环对同一条视频进行了五次编码,其它四条视频都没有变化。

我测试时没问题啊,脚本生成了多个视频,而且每个输出视频打开看了内容也没错
6f7a8d 发表于 2021-1-14 13:25
本帖最后由 6f7a8d 于 2021-1-14 13:27 编辑
鱼人大大 发表于 2021-1-14 12:55
大佬  还是有些不对,我拖入了五条视频,脚本循环对同一条视频进行了五次编码,其它四条视频都没有变化。

要不你试试这个:
[Shell] 纯文本查看 复制代码
::ffmpeg.exe路径下要有和下面命令行中相应的中文字体,如simhei.ttf,否则会有乱码
::这是处理bat文件目录下所有后缀名为.mp4的视频文件的。不需要拖入文件,把bat文件和要处理的视频放到同一目录下,双击执行即可。
::如果视频格式不是MP4,只要修改下面代码中的“.mp4”为你的视频格式的后缀名(如“.flv”)就行了。
setlocal enabledelayedexpansion
for %%j in ("%cd%\*.mp4") do (
	for %%k in (1) do (
	ffprobe.exe  "%%j" -show_entries format=duration -of compact=p=0:nk=1 -v 0 >>tmp.txt
	for /f %%i in (tmp.txt)  do (
		set target=%%i
		ffmpeg -i %%j -y -vf "drawtext=fontfile=simhei.ttf: text='watermark我是水印':x=10:y=10:fontsize=50:fontcolor=white:shadowy=3:enable='between(t,!target!-5,!target!)'[out]" %%~dpj%%~nj_output%%~xj
	)
	del /f /s /q tmp.txt
	)
) 
pause
 楼主| 鱼人大大 发表于 2021-1-14 13:32
6f7a8d 发表于 2021-1-14 13:05
我测试时没问题啊,脚本生成了多个视频,而且每个输出视频打开看了内容也没错

啊啊 对不起 是我复制错了。  现在就剩一个乱码问题了,我换了好几种方式都是乱码.....
6f7a8d 发表于 2021-1-14 13:40
鱼人大大 发表于 2021-1-14 13:32
啊啊 对不起 是我复制错了。  现在就剩一个乱码问题了,我换了好几种方式都是乱码.....

我这边测试时是没有乱码的 试试把字体和视频文件放在一起,或者换另一种中文字体看看行不行
快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-6 12:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表