Use
ffmpeg -ss 01:19:22 -t 00:1:43 -i "in.mp4" -c copy -avoid_negative_ts make_zero out.mp4
A maioria dos vídeos compactados usa compactação temporal, portanto, os quadros dependem de outros quadros para decodificação completa. Se você cortar um vídeo usando o modo copy
, alguns quadros após o ponto de entrada poderão depender de quadros antes do ponto de entrada para decodificação. Nesse caso, esses quadros devem ser incluídos. Esses quadros recebem carimbos de data / hora negativos, então bons reprodutores de vídeo os usam para decodificar, mas não para apresentação. O vídeo é mostrado a partir do inpoint em diante. Como todos os quadros de áudio são quadros-chave, o corte de áudio é preciso e a sincronização A / V é preservada.
Aparentemente, os editores de vídeo não parecem prestar atenção ao PTS, portanto mostram todos os quadros armazenados no arquivo. Meu comando acima força o TS positivo para todos os quadros armazenados, então o vídeo / áudio permanecerá sincronizado *.
* Não é totalmente verdade. Para codecs de áudio baseados em MDCT, como MP3 / AAC, o quadro anterior é incluído com PTS negativo, já que é necessário para a decodificação. Talvez seu NLE decodifique esse quadro, levando a uma assíncrona de 21 a 23 ms. A solução alternativa é recodificar o áudio.