因此,我尝试剪辑这样的视频:
ffmpeg -ss 35:58.907 -i Source.mkv \
-copyts -to 36:43.857 -map 0:0 -map 0:2 \
-c:v libx264 -preset slow -tune film -crf 18 -vf "ass=Source.ass" \
-c:a copy Destination.mkv
之后,我尝试Destination.mkv
使用 MPC-HC 进行游戏。
音频剪辑得很完美,但视频一开始有几秒钟的黑屏/空白帧。不过音频和视频仍然保持完美同步。
我怎样才能防止这些黑框的出现?
答案1
好的,所以我的问题肯定是由“缺少关键帧”引起的。
因此,为了解决这个问题,我现在分两个阶段进行:
(请注意,我想要剪切的原始源时间戳是35:58.907
):
# Move forward the cutting timestamp by N seconds. Here, N=6.00
ffmpeg -ss 35:52.907 -i Source.mkv \
-copyts -to 36:43.857 -map 0:0 -map 0:2 \
-c:v libx264 -preset slow -tune film -crf 18 -vf "ass=Source.ass" \
-c:a copy Intermediate.mkv
此步骤在开始时会产生几秒钟的黑帧,但它做正确找到我想要剪切的部分。然后我继续:
# Re-cut the video starting N seconds forward. Here, N=6.00
ffmpeg -i Intermediate.mkv -ss 00:06.000 \
-c:v libx264 -preset slow -tune film -crf 18 \
-c:a copy Destination.mkv
是的,我必须对视频进行两次编码,因此会有一些质量下降,但从视觉上我没有看到质量下降,所以我认为这两步处理可以满足我的需要。
-crf
(如果开始出现视觉伪影,我可以在第一步使用更低的值,比如15
,或12
,或——但愿不会——即使0
需要。)