FFmpeg Windows版本
电脑
搜索Zeranoe ffmpeg下载ffmpeg windows版本:可以选择Static或者Shared版本来下载。
好了 下面进入正题,如何用ffmpeg内嵌DVB字幕呢?其实很简单,只需要ffmpeg里一个叫overlay的滤镜。在这里我引用ffmpeg.org网站的例子:ffmpeg -i input.mkv -filter_complex '[0:v][0:s]overlay[v]' -map '[v]' -map 0:a
当然我们也可以对字幕进行一些处理,例如缩放:
移动位置(y轴向上移动500像素):
如果觉得这样还不够方便的话,可以做成bat批处理的形式,就像这样:然后保存在与ffmpeg.exe同一文件夹里,就可以直接拖ts进去bat压制了。
下面提供自用的两个bat(需自行用记事本等软件另存为bat):第一个(输出720P倍帧 字幕缩放为4:3 仅适合1080i的视频输入):ffmpeg -i '%~dp1%~nx1' -c:v libx264 -crf 22 -x264opts force-cfr=1 -preset medium -vsync cfr -filter_complex idet,bwdif=1:deint=interlaced[v1],[0:s:0]scale=w=1440:h=1080:flags=lanczos[sub],[v1][sub]overlay=x=240:shortest=1[v2],[v2]scale=w=1280:h=720:flags=lanczos[video],aresample=async=1000 -map [video] -map 0:a -c:a aac -s 1280*720 -aspect 16:9 -f matroska '%~dp1%~nx1.mkv'pause第二个(输出720P倍帧 字幕不缩放):ffmpeg -i '%~dp1%~nx1' -c:v libx264 -crf 22 -x264opts force-cfr=1 -preset medium -vsync cfr -filter_complex idet,bwdif=1:deint=interlaced[v1],[v1][0:s:0]overlay=shortest=1[v2],[v2]scale=w=1280:h=720:flags=lanczos[video],aresample=async=1000 -map [video] -map 0:a -c:a aac -s 1280*720 -aspect 16:9 -f matroska '%~dp1%~nx1.mkv'pause
如果还是喜欢可开关的字幕,那可以使用以下这个bat:ffmpeg -i '%~dp1%~nx1' -c:v libx264 -crf 22 -x264opts force-cfr=1 -preset medium -vsync cfr -filter_complex [0:v]bwdif=1:deint=all[v1],aresample=async=1000 -c:s copy -map [v1] -map 0:a -map 0:s -c:a aac -s 1280*720 -aspect 16:9 -f mpegts '%~dp1%~nx1.ts'pause这个对视音频都进行了压制,但字幕是保存原样的,可开可关。
如果不太熟悉windows命令行的操作,可以先学习一下