如何去掉字幕组的片头广告
人生气的时候就不知道会干出什么来。
我这种硬盘党的日子不好过啊。继人人的片头30秒广告之后,FIX也开始加片头广告了……虽然只有15秒的时间,但是也足以把我气到去小小地研究了一下怎么使用ffmpeg把开头广告去掉。结果当然是可喜可贺。
要去掉片头广告实际上很简单,只需要先去下载和配置好ffmpeg,再用cmd或者其他terminal(我用了git bash)运行下面这一行命令就可以了:
1 | ffmpeg -i <视频文件名称> -ss 00:00:14.500 -t 00:46:20.02 -map 0 -vcodec copy -acodec copy -async 1 <新的视频名称> |
第一个方括号(包括方括号在内)用想要剪裁的视频文件的全名替换,第二个方括号同前用新的视频名称替换,两个视频名称都要包括文件扩展名。以下是其他命令的一点解释:
-ss 00:00:14.500
视频开始的位置,FIX添加的片头有15秒,不过真的从00:00:15
开始的话似乎会有一些问题,所以稍微提前了不到一秒钟的时间。人人字幕组的30秒广告倒是完全按照00:00:30
剪辑没有什么问题。
-t 00:46:20.02
视频时长,这里的视频时长是手动查看原视频的属性之后得到的。应该有自动获取的方法,不过我这里只是转换一集而已,手动右键查看属性就方便得多。
-map 0
虽然我试图保存字幕组加上的预览图片,不过看起来-map
目前并不管用。
-vcodec copy -acodec copy
保留原视频的视频和音频编码,这样的话处理速度很快。
-async 1
又一个没有什么用处的命令,是保证音视频同步用的。
Update (2020/8/25)
啊我的天……摸鱼摸出了一个去广告的batch file,我太能摸了or2
广告时长是手动写入的,比较方便一点,也可以使用argument方式注入。
Reference已添加。
Reference
How to Install FFmpeg on Windows
Cutting the videos based on start and end time using ffmpeg
Assign output of a program to a variable using a MS batch file