Anda tidak dapat melakukan ini dalam satu perintah. Namun, dengan asumsi Anda menjalankan di Linux dan memiliki Bash (atau yang serupa) sebagai shell Anda, yang diperlukan hanyalah dua perintah. Harap dicatat bahwa ini hanya berfungsi jika semua video memiliki codec video dan audio dan basis waktu yang sama persis (fps, dll.).
1. Buat daftar video dan mulailah waktu
Anda pertama-tama harus membuat daftar edit yang berisi yang berikut ini. Sebut saja videos:
1.webm 00:00:00
2.webm 00:00:10
3.webm 00:00:20
Perhatikan bahwa ini tidak mendukung nama video dengan spasi.
2. Membagi video
Sekarang kita akan membuat folder sementara untuk menampung video kecil kita. Sebut saja tmp. Kemudian Anda dapat membagi file Anda seperti ini:
while read video time; do ffmpeg -i $video -ss $time -t 10 -c copy tmp/$video; done < videos
Di sini, -t 10berarti kami akan memotong 10 detik dari video, mulai dari stempel waktu yang ditentukan oleh -ss. Anda juga dapat menggunakannya -todaripada -tmemotongnya sampai titik tertentu.
Jika semua video input Anda memiliki codec video dan audio yang berbeda, Anda harus menyandikan ulang video pada saat ini. Untuk ini, Anda harus mengganti -c copybagian dengan pengaturan codec video dan audio tertentu, misalnya -c:v libx264 -c:a libfaacuntuk video dan audio H.264 / AAC.
3. Menggabungkan video
Sekarang, menggunakan concatprotokol kita dapat menggabungkan file kembali bersama-sama:
ffmpeg -f concat -i <(for f in tmp/*.webm; do echo "file '$f'"; done) -c copy output.webm
Ini yang kamu butuhkan. Ia bekerja dengan secara dinamis membuat file penggabungan dengan cepat. Jika tidak, Anda harus membuat secara manual sesuai dengan concatdokumentasi .
Akhirnya Anda bisa membersihkan tmpfolder Anda .
concatdec_selectdapat melakukan semua kebutuhan Anda dalam satu langkah superuser.com/a/1020455/15252