Bagaimana cara memotong (bukan gambar) file video MP4

17

Saya mencari aplikasi untuk membantu saya memotong bit mulai dan akhir file mp4 secara efisien dan tanpa kehilangan .

mis. adakah sesuatu yang membuat saya menemukan keyframe dan menyalin lot antara itu dan keyframe lain, tanpa perlu menyandikan ulang lot (lambat dan rugi), dan tanpa kehilangan sinkronisasi AV?

Dengan mp4, maksud saya video H264 + AAC audio dalam wadah MP4

Pra h264 hari Avidemux adalah alat yang sangat baik untuk ini karena Anda dapat menggunakan kembali aliran yang disandikan asli yang berarti tidak ada kerugian dan hanya perlu beberapa detik untuk membuat versi yang dipangkas, tetapi tidak ada harapan dengan h264 - pembukaan satu memberi Anda dua pilihan: gunakan mode aman (yang kehilangan sinkronisasi AV secara besar-besaran) atau menggunakan mode berbahaya yang segera menghentikannya.

AFAIK, Openshot, Kdenlive, Pitivi dll. Semua akan melakukan ini dengan decoding dan recoding (lambat dan hilang).

Tampaknya hal yang sederhana (mungkin menunjukkan kurangnya pengetahuan saya di sini!), Jadi bertanya-tanya apakah saya kehilangan sesuatu.

artfulrobot
sumber
Jika Anda perlu memotong bagian akhir video, silakan lihat jawaban yang saya berikan pada topik lain: askubuntu.com/questions/412558/…
v010dya
2
superuser.com/questions/377343/… berhubungan baik dan menawarkan solusi yang serupa dengan yang di bawah ini tetapi menambahkan beberapa info bagus.
pbhj

Jawaban:

24

ffmpeg

ffmpeg -i source.mp4 -ss 00:00:00 -t 00:00:00 -vcodec copy -acodec copy splice.mp4

Ini akan mengambil source.mp4 dan, menggunakan codec audio dan video yang sama dan tidak menurunkan kualitas, ambil -t waktu setelah -ss mulai waktu video dan output splice.mp4 Anda

Harap perhatikan bahwa waktunya sangat sensitif untuk memformat (di atas adalah salah satu contoh pemformatan). Juga, dalam beberapa distribusi, ffmpegtelah diganti dengan avconv. Cukup jalankan perintah di atas dan ganti kata ffmpeg dengan avconv untuk menyelesaikan ini.

Sumber informasi hebat lainnya tentang topik ini. (Terima kasih @ pbhj)

earthmeLon
sumber
3
Cemerlang. Perhatikan bahwa Anda tidak dapat menyingkat -ssargumen, yaitu 9:00selama 9 menit harus dinyatakan karena 00:09:00jika tidak maka diabaikan. Saya pikir jawaban ini juga harus diperbarui untuk digunakan avconv, sesuai dengan peringatan ffmpeg. Terima kasih.
artfulrobot
Catatan, peringatan itu hanya mencerminkan bahwa Anda telah menginstal avconv daripada ffmpeg, sehingga ffmpeg Anda dapat dieksekusi sebenarnya hanya pembungkus di sekitar avconv dan pembungkus itu mungkin akan segera ditinggalkan. Jika Anda menginstal ffmpeg tetapi tidak avconv, Anda tidak akan mendapatkan peringatan itu. Itu tidak dimaksudkan untuk menandakan bahwa ffmpeg sendiri sudah usang (meskipun, versi terbaru dari Ubuntu telah memilih untuk menginstal avconv secara default daripada ffmpeg).
thomasrutter
5

Di Ubuntu 16,04 yang setara dengan ffmpegadalah perintahavconv

Untuk menginstalnya jalankan:

sudo apt-get install libav-tools

Contoh perintah baris untuk memotong video berdasarkan waktu:

avconv -i originalFile.ogv -ss 00:00:00 -t 00:00:10 -vcodec copy -acodec copy croppedFile.ogv
AlejandroVD
sumber
Tidak tersedia di versi Ubuntu yang lebih baru.
lolmaus - Andrey Mikhaylov