Eu tenho um vídeo que é um jogo de futebol. Eu gostaria de cortar o tempo e before the game
, during half time
finalmente, o fim do jogo.
Comprimento Total do Clipe 1h 51m
ou111m
Idealmente, os cortes e o tempo são 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 em
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
Make
input.txt
contendo os timestamps (em segundos) para cortar:Execute
ffmpeg
para concatenar com o demuxer concat :Isso transmitirá copy , 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, pode não ser preciso 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, obtenha carimbos de data/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
.Use Videocut que eu escrevi para esta finalidade. Devido ao seu próprio muxer, é mais preciso que o ffmpeg e fornece uma interface gráfica.
Como é baseado em ffmpeg (ou suas bibliotecas), o corte é sem perdas.