求问关于 ffmpeg 烧录硬字幕的时间线问题。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhouweiluan
V2EX    FFmpeg

求问关于 ffmpeg 烧录硬字幕的时间线问题。

  •  
  •   zhouweiluan 2020-08-22 01:26:45 +08:00 3064 次点击
    这是一个创建于 1926 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需要截取一部电影里的一小段同时写入硬字幕。
    查找了很多文献,最后得出
    ffmpeg -ss [time] -to [time] -i [input] -vf subtitles=[ass] output.mp4
    这条命令。
    最后产生的结果是,电影确实按照预的时间线裁剪出来了,字幕确实也烧录到里面了,但是字幕文件并没有按裁剪的时间线走,而是从头开始,找了很多资料也没有了解到关于字幕的相关裁剪时间命令。
    无奈上来请教 0.0

    6 条回复    2021-05-28 12:30:34 +08:00
    jifengg
        1
    jifengg  
       2020-08-24 10:23:51 +08:00   1
    -ss 和-to 写在-i 前面的时候,是对“输入文件进行截取”之后再进行字幕叠加。要改成
    -i [input] -ss [time] -to [time] ,-i 写在前面,这样的意思是“输出文件只截取 ss 到 to 秒”,这样字幕时间线就正常了。

    注意,ffmpeg 有些参数的位置是有考究的。特别是 -i 前后。
    zhouweiluan
        2
    zhouweiluan  
    OP
       2020-08-25 01:01:55 +08:00
    @jifengg 非常感谢解答!这样确实字幕时间线能够正常。
    但是-i 在前导致的一个问题是他会先把整部电影先过一遍后再截取,导致整个编码时间非常久。
    还有没有另外的方法可以直接编码我需要的部分但是又能够字幕时间线正常的呢。
    jifengg
        3
    jifengg  
       2020-08-27 12:54:12 +08:00   1
    @zhouweiluan 暂时没找到好办法。一个方法是,先把字幕文件进行截取:
    ffmpeg -sub_charenc -i in.srt -ss ** -to ** -y out.srt
    然后再用你一开始的语句“ffmpeg -ss [time] -to [time] -i [input] -vf subtitles=[ass] output.mp4”去加硬字幕。

    这个方法有一个弊端,如果你的截取时间点正好落在一句话上,ffmpeg 会舍弃这句话。出来的 srt 会少头少尾。当然解决办法也有,你截取的时候往前几十秒截。转码的时候-i 前面是你原先的-ss,-i 后面再加一个-ss 是你字幕往前偏移的那几十秒。
    zhouweiluan
        4
    zhouweiluan  
    OP
       2020-08-27 16:54:35 +08:00
    @jifengg 太感谢了,是个好办法。
    yuetian
        5
    yuetian  
       2021-05-27 09:57:44 +08:00 via Android   1
    vf 烧录字幕时会把字幕文件和视频流时间轴零点对齐,可以先调字幕文件时间轴,然后烧录,比如下面这两行,只给第 2 分钟的视频烧录字幕,

    $ ffmpeg -itsoffset -00:01:00 -i rawsub.ass -map 0 -c ass sub.ass
    $ ffmpeg -ss 00:01:00 -to 00:02:00 -i rawvideo.mp4 -map 0 -filter:v ass=f=sub.ass -c:v h264 -c:a copy video.mp4
    zhouweiluan
        6
    zhouweiluan  
    OP
       2021-05-28 12:30:34 +08:00
    @yuetian 感谢大佬解答,回头我试一下~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2248 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 15:54 PVG 23:54 LAX 07:54 JFK 10:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86