Pertanyaan Bagaimana cara menggabungkan file video dari terminal?


Saya telah mencoba avidemux2_cli, mencoder, ffmpeg, cat .. Tapi ini tidak selalu berhasil (Dengan sebagian besar waktu kesalahannya adalah bahwa codec audio tidak sama) Mungkin saya salah memasukkan opsi dalam perintah.

Jadi perintahnya:

cat Sample.avi rrr.avi > complete.avi
ffmpeg -i Sample.avi -i output.avi -vcodec copy -acodec copy complete.avi
mencoder -ovc lavc -oac copy Sample.avi rrr.avi -o complete.avi
avidemux2_cli --audio-codec copy --video-codec copy --output-format avi --load Sample.avi -append output.avi --save video.avi

Masalah kucing adalah bahwa itu tidak menunjukkan kesalahan tetapi tidak selalu berfungsi .. Seperti complete.avi akan persis sama dengan Sample.avi

Fmmpeg tidak melakukan apa-apa. Complete.avi selalu sama dengan Sample.avi

Kesalahan Mencoder: Semua file harus memiliki codec audio dan format yang identik untuk salinan -oac. Jadi complete.avi itu sama dengan Sample.avi

avidemux2_cli tidak ada kesalahan tetapi complete.avi lagi sama dengan Sample.avi ..

Jadi untuk meringkas, semua complete.avi adalah sama dengan Sample.avi .. Dan masalahnya adalah bahwa mereka tidak memiliki codec audio yang sama (i quess) .. Ada ide?


9
2017-07-08 16:41


asal


Saya pikir Anda perlu mengubah codec video dan codec audio dari file input ke dalam codec yang sama, jika Anda ingin menggabungkan dua video dengan aman, - vine_user
Dan bagaimana saya bisa melakukannya? - Leon Vitanos
Kamu dapat memakai mencoder dengan opsi -ovc dan opsi -oac. Lihat: mplayerhq.hu/DOCS/HTML/en/menc-feat-selecting-codec.html - vine_user


Jawaban:


Jika Anda ingin menggabungkan dua video dengan aman, Anda perlu mengubah codec video dan codec audio file input ke dalam codec yang sama.

Misalnya, menggunakan xvid (codec video) dan mp3lame (codec audio):

sudo apt-get install mencoder libxvidcore4 libmp3lame0

Anda dapat menyandikan video input dengan perintah di bawah ini:

mencoder -ovc xvid -oac mp3lame -xvidencopts bitrate=1000 first.avi -o video1.avi
mencoder -ovc xvid -oac mp3lame -xvidencopts bitrate=1000 second.avi -o video2.avi

Untuk dicocokkan dengan video Anda, Anda dapat mengubah opsi "bitrate" dll. (Dan juga codec).

Jika nama video yang dikodekan adalah "video1.avi" dan "video2.avi", dan nama video outputnya adalah "join-video.avi",

mencoder -ovc copy -oac mp3lame video1.avi video2.avi -o joined-video.avi 

Dengan menggunakan perintah ini, Anda dapat membuat file video yang digabungkan.


10
2017-07-08 18:38



Hanya berpikir saya akan memperkuat bahwa nama util ini mencoder (mis. Media ENcoder). Banyak orang terjebak tanpa sengaja mengetik memcoder. - Val
bukankah ukuran frame juga harus cocok? - Elder Geek


Saya harus bergabung dengan tiga bagian video dengan codec yang identik. Membaca jawaban sebelumnya saya berhasil melakukan ini:

mencoder -ovc copy -oac faac 01.mp4 02.mp4 03.mp4 -o output.mp4

Jauh lebih cepat dan lebih sederhana daripada Openshot!

Pertama saya mencoba opsi '-oac copy', tetapi tampaknya codec audio dalam video saya tidak mengizinkannya. Saya mendapat pesan kesalahan merekomendasikan '-ac pcm'. Kodek PCC bukanlah pilihan yang baik meskipun: file yang dihasilkan sangat besar dan 2/3 dari itu adalah audio tidak terkompresi.

Semoga ini membantu


4
2018-04-19 23:01



MEncoder svn r34540 (Ubuntu), dibangun dengan gcc-4.7 (C) 2000-2012 MPlayer Team MPlayer dikompilasi tanpa libfaac. Lihat README atau DOCS. - Philippe Gachoud


Solusi yang saya temukan sini membantu saya untuk bergabung tanpa kehilangan dua file mp4:

sudo apt-get install gpac
MP4Box -cat part1.mp4 -cat part2.mp4 -new joinedfile.mp4

Saya mencoba menggunakan Avidemux, tetapi mengalami masalah dengan suara di video gabungan.


1
2017-08-23 16:09





File Anda tidak akan bergabung dengan benar karena ada yang tidak cocok.

Seperti banyak orang lain, saya mengalami masalah dengan menyinkronkan suara dengan benar dalam video gabungan. dan sementara MP4Box berfungsi dengan baik jika klip memiliki spesifikasi yang identik, dalam beberapa kasus saya akan didera oleh "Tidak ada jalur tujuan yang cocok ditemukan - membuat yang baru" dalam hal ini Totem (alias Video) Tidak akan memutar segmen itu dalam file yang digabungkan Setelah beberapa trial and error dan penelitian lebih lanjut saya telah mengembangkan metode berikut untuk menangani bergabung dengan video yang sejauh ini telah bekerja setiap saat dengan kualitas yang dapat diterima (kepada saya).

Jika ukuran bingkai tidak cocok (menggabungkan kesalahan yang berkaitan dengan trek video):

Normalkan video tanpa mengganggu audio (-c: salinan) dengan menetapkan batasan (dapat dibagi dengan 8 untuk kompatibilitas codec yang maksimum) untuk segmen yang tak tertandingi

Contoh perintah

width=856

height=480

avconv -i input.mp4 -filter:v "scale=iw*min($width/iw\,$height/ih):ih*min($width/iw\,$height/ih), pad=$width:$height:($width-iw*min($width/iw\,$height/ih))/2:($height-ih*min($width/iw\,$height/ih))/2" -c:a copy output.mp4

Jika Audio Tidak cocok (menggabungkan kesalahan yang berkaitan dengan trek audio):

Normalkan Audio

Proses audio tanpa mengganggu video (c: v copy) sehingga semua klip cocok dengan codec, frekuensi dan bitrate yang diinginkan dengan c: frekuensi codec -ar seperti -ar 48000 dan dan bit-rate dengan b: 128k untuk stereo (64K per saluran tampaknya target yang baik) atau pertandingan apa pun.

Contoh: avconv -i input.mp4 -c:v copy -c:a libmp3lame -ar 48000 b:a 128k output.mp4 (perhatikan bahwa libmp3lame adalah codec untuk audio mp3) Anda bisa mendapatkan daftar enkoder yang didukung avconv dengan mengeluarkan perintah avconv -codecs atau untuk mempersempit ke kode tertentu avconv -codecs|grep *codecname* sebagai contoh avconv -codecs|grep mp3

Sekarang kita telah menormalkan file, kita bisa bergabung dengan mereka. Dalam contoh ini saya akan menggabungkan file dengan MP4Box. Jika Anda tidak memilikinya, Anda bisa mendapatkannya dengan mengeluarkan perintah sudo apt-get install gpac

Bergabunglah dengan file dengan perintah MP4Box file1.mp4 -cat file2.mp4 -cat file3.mp4 -cat file4.mp4 -out joinedfile.mp4 (perhatikan bahwa tidak ada kucing sebelum file pertama dan setiap file tambahan didahului oleh -cat dan file target didahului oleh -out)

Jika menggunakan MP4Box (disarankan untuk MP4) untuk bergabung, Anda mungkin menemukan bahwa Anda harus memproses semua klip dengan avconv apakah spesifikasi tampak cocok atau tidak untuk menghindari kesalahan “Tidak ada jalur tujuan yang cocok ditemukan - membuat yang baru (ketik vide) ”

Catatan: Saya telah menemukan Avidemux memiliki masalah dengan video yang dikodekan menggunakan file H.264 / AVC (per totem) karena B-frame sebagai referensi. Ini tampaknya menghasilkan audio tidak sinkron ketika bergabung bahkan ketika memilih untuk menyalin audio dan video tanpa remux. Mogok saat tidak memilih mode aman dan tidak sinkron saat menggunakan mode aman

Sumber:

https://superuser.com/questions/547296/resizing-videos-with-ffmpeg-avconv-to-fit-into-static-sized-player

https://stackoverflow.com/questions/20703160/problems-with-setting-constant-bitrate-by-using-avconv

https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_cbr

catatan: Sejauh yang saya tahu format lain (kontainer) memiliki kendala yang sama untuk pencocokan ukuran frame dan tingkat audio, jadi ini dapat bekerja untuk avi juga jika Anda mencoba bergabung melalui kucing atau mencoder setelah normalisasi video dan audio.

Pilihan: Gunakan Handbrake untuk menyandikan ulang file yang digabungkan untuk ukuran yang lebih kecil jika diinginkan dengan framerate variabel dan pengaturan kualitas konstan 25 (pengaturan yang disarankan - sesuaikan seperlunya untuk material dan ekspektasi kualitas Anda)


1
2017-11-05 18:29





Anda harus mengetik seperti ini:

avidemux2_cli --audio-codec copy --video-codec copy --output-format avi --load Sample.avi --append output.avi --save video.avi

Jika Anda ingin menambahkan lebih banyak file:

avidemux2_cli --audio-codec copy --video-codec copy --output-format avi --load Sample.avi --append output1.avi --append output2.avi --append output3.avi --save video.avi

1
2017-10-01 14:35





Saya dapat menggunakan VLC Media Player untuk bergabung / menggabungkan beberapa file video. VLC dapat diunduh dari Perangkat Lunak Ubuntu atau Anda dapat menginstalnya dari terminal dengan menekan Ctrl+Alt+T dan mengetik:

sudo apt update
sudo apt install vlc

Setelah VLC terinstal, buka terminal di folder dengan file video dan kemudian ketik:

vlc InFile1.mp4 InFile2.mp4 --sout "#gather:std{access=file,dst=OutFile.mp4}" --sout-keep

Ini akan membuka VLC GUI dan Anda dapat menutupnya setelah file digabungkan / digabungkan. Anda dapat menemukan info lebih lanjut sini.


1
2017-10-26 00:19