ffmpeg cortar vídeo causa quadros negros

0

Então, estou tentando gravar um vídeo assim:

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

Depois, tento reproduzir Destination.mkv usando o MPC-HC.

O áudio foi cortado perfeitamente, mas o vídeo começa com vários segundos de quadros em preto / branco. Áudio & O vídeo permanece em perfeita sincronia, no entanto.

Como posso evitar que esses quadros pretos ocorram?

    
por pepoluan 10.09.2017 / 18:42

1 resposta

0

Ok, então meu problema é definitivamente causado por "falta de quadros-chave".

Então, para consertar isso, agora faço isso em dois estágios:

(Observe que o carimbo de data / hora da fonte original do qual eu quero recortar é 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

Esta etapa produz vários segundos de quadros pretos no começo, mas faz ter a seção que eu quero cortar corretamente. Então eu sigo com:

# 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

Sim, tenho que codificar o vídeo duas vezes, para que haja alguma degradação, mas visualmente não vejo nenhuma degradação, por isso acho que esse processamento em duas etapas é aceitável para as minhas necessidades.

(e se os artefatos visuais começarem a aparecer, posso usar um -crf muito menor para a primeira etapa, digamos 15 ou 12 , ou - Deus me livre - até 0 se necessário. )

    
por 10.09.2017 / 19:12

Tags