ffmpeg剪切视频导致黑框

ffmpeg剪切视频导致黑框

因此,我尝试剪辑这样的视频:

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需要。)

相关内容