$ ffmpeg -i source-file.foo -ss 0 -t 600 first-10-min.m4v
$ ffmpeg -i source-file.foo -ss 600 -t 600 second-10-min.m4v
$ ffmpeg -i source-file.foo -ss 1200 -t 600 third-10-min.m4v
...
Membungkus ini menjadi sebuah skrip untuk melakukannya dalam satu lingkaran tidak akan sulit.
Berhati-hatilah bahwa jika Anda mencoba menghitung jumlah iterasi berdasarkan output durasi dari ffprobe
panggilan yang diperkirakan dari bit rate rata-rata pada awal klip dan ukuran file klip kecuali Anda memberikan -count_frames
argumen, yang memperlambat operasinya secara signifikan. .
Hal lain yang perlu diperhatikan adalah posisi -ss
opsi pada baris perintah penting . Di mana saya memilikinya sekarang lambat tapi akurat. Versi pertama dari jawaban ini memberikan alternatif yang cepat tetapi tidak akurat . Artikel tertaut juga menjelaskan sebagian besar alternatif yang cepat-tapi-masih-akurat, yang Anda bayar dengan sedikit kerumitan.
Selain itu, saya tidak berpikir Anda benar-benar ingin memotong tepat 10 menit untuk setiap klip. Itu akan memotong tepat di tengah kalimat, bahkan kata-kata. Saya pikir Anda harus menggunakan editor video atau pemutar untuk menemukan titik potong alami yang hanya berjarak 10 menit.
Dengan asumsi file Anda dalam format yang dapat diterima YouTube secara langsung, Anda tidak perlu memasukkan ulang kode untuk mendapatkan segmen. Lewati offset cut point natural ffmpeg
, katakan untuk meneruskan A / V yang disandikan agar tidak tersentuh dengan menggunakan codec "copy":
$ ffmpeg -i source.m4v -ss 0 -t 593.3 -c copy part1.m4v
$ ffmpeg -i source.m4v -ss 593.3 -t 551.64 -c copy part2.m4v
$ ffmpeg -i source.m4v -ss 1144.94 -t 581.25 -c copy part3.m4v
...
The -c copy
Argumen mengatakan itu untuk menyalin semua aliran input (audio, video, dan berpotensi lainnya, seperti sub judul) menjadi output sebagai-adalah. Untuk program A / V sederhana, itu setara dengan bendera yang lebih verbose -c:v copy -c:a copy
atau bendera gaya lama -vcodec copy -acodec copy
. Anda akan menggunakan gaya yang lebih verbose ketika Anda ingin menyalin hanya satu aliran, tetapi menyandikan ulang yang lain. Misalnya, beberapa tahun yang lalu ada praktik umum dengan file QuickTime untuk mengompres video dengan video H.264 tetapi meninggalkan audio sebagai PCM yang tidak terkompresi ; jika Anda berlari melintasi file seperti itu hari ini, Anda dapat memodernkannya dengan -c:v copy -c:a aac
hanya memproses ulang streaming audio, membiarkan video tidak tersentuh.
Titik awal untuk setiap perintah di atas setelah yang pertama adalah titik awal perintah sebelumnya ditambah durasi perintah sebelumnya.