Anda mungkin tidak memiliki bingkai kunci pada tanda 3 detik. Karena frame non-key menyandikan perbedaan dari frame lain, mereka memerlukan semua data yang dimulai dengan frame kunci sebelumnya.
Dengan wadah mp4, dimungkinkan untuk memotong pada kerangka non-key tanpa re-encoding menggunakan daftar edit. Dengan kata lain, jika bingkai kunci terdekat sebelum 3s adalah pada 0s maka itu akan menyalin video mulai dari 0s dan menggunakan daftar edit untuk memberitahu pemain untuk mulai bermain 3 detik.
Jika Anda menggunakan ffmpeg terbaru dari git master, ia akan melakukan ini menggunakan daftar edit ketika dipanggil menggunakan perintah yang Anda berikan. Jika ini tidak berhasil untuk Anda, maka Anda mungkin menggunakan versi ffmpeg yang lebih lama, atau pemain Anda tidak mendukung daftar edit. Beberapa pemain akan mengabaikan daftar edit dan selalu memutar semua media dalam file dari awal hingga akhir.
Jika Anda ingin memotong dengan tepat mulai di kerangka non-key dan ingin bermain mulai pada titik yang diinginkan pada pemain yang tidak mendukung daftar edit, atau ingin memastikan bahwa bagian yang dipotong tidak benar-benar dalam file output (misalnya jika berisi informasi rahasia), maka Anda dapat melakukannya dengan menyandikan ulang sehingga akan ada bingkai kunci tepat pada waktu mulai yang diinginkan. Pengodean ulang adalah default jika Anda tidak menentukan copy
. Sebagai contoh:
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4
Saat menyandikan ulang, Anda mungkin juga ingin menyertakan opsi terkait kualitas tambahan atau penyandi AAC tertentu. Untuk detailnya, lihat Panduan Pengkodean ffmpeg x264 untuk video dan Panduan Pengkodean AAC untuk audio.
Juga, -t
opsi menentukan durasi, bukan waktu akhir. Perintah di atas akan menyandikan 8s video mulai dari 3s. Untuk memulai pada 3s dan berakhir pada 8s gunakan -t 5
. Jika Anda menggunakan versi ffmpeg saat ini, Anda juga dapat menggantinya -t
dengan -to
perintah di atas untuk mengakhiri pada waktu yang ditentukan.