
Tenho um vídeo que é um jogo de futebol. Gostaria de reduzir o tempo e before the game
, during half time
finalmente, o final do jogo.
Comprimento total do clipe 1h 51m
ou111m
O ideal é que os cortes e o tempo sejam os seguintes:
+------------+-------------+---------------------+
| Start Time | Finish Time | Clip Duration |
+------------+-------------+---------------------+
| 1:30 | 47:30 | 47:30 |
| 53:00 | 100:00 | 47 |
+------------+-------------+---------------------+
No entanto, meu vídeo termina às
ffmpeg -ss 00:01:30 -i Tripod_Camera.mp4 -t 00:47:30 -ss 00:53:00 -t 00:47:00 -c copy VideoClip.mp4
Responder1
Make
input.txt
contendo os timestamps (em segundos) a serem cortados:file 'input.mp4' inpoint 90 outpoint 2850 file 'input.mp4' inpoint 3180 outpoint 6000
Execute
ffmpeg
para concatenar com odesmultiplicador concat:ffmpeg -f concat -i input.txt -c copy output.mp4
Isso vaicópia do fluxo, portanto, nenhuma recodificação ocorre, o que significa que todo o processo será rápido e a qualidade será preservada. No entanto, os cortes serão feitos em quadros-chave, portanto, podem não ser precisos o suficiente. Se for necessária maior precisão, você terá que usar um método muito mais lento, como usar os filtros (a)trim, (a)setpts e concat, que requerem recodificação.
Se você obtiver dessincronização A/V, entãoobter carimbos de data e hora de quadros-chave, use carimbos de data/hora de quadro-chave como seu
inpoint
, mas adicione 0,001 a cadainpoint
carimbo de data/hora eminput.txt
.
Responder2
UsarCorte de vídeoque escrevi para esse propósito. Devido ao seu próprio muxer, é mais preciso que o ffmpeg e fornece uma interface gráfica.
Por ser baseado no ffmpeg (ou em suas bibliotecas), o corte é sem perdas.