Apakah mungkin untuk menggabungkan file video menggunakan `cat`?

17

Saya ingin tahu apakah mungkin untuk menggabungkan file video menggunakan catperintah? Maksud saya, file yang dihasilkan akan diputar dengan lancar?

Hamed Momeni
sumber
1
Sudahkah Anda mencoba?
Tuan Lister
3
Sebenarnya saya lakukan. Tetapi entah bagaimana hasilnya tidak mengandung file kedua meskipun ukuran file adalah jumlah keduanya.
Hamed Momeni

Jawaban:

20

Ya itu mungkin. Tetapi tidak semua format mendukungnya.

FAQ ffmpeg :

Beberapa wadah multimedia (MPEG-1, MPEG-2 PS, DV) memungkinkan untuk bergabung dengan file video hanya dengan menggabungkannya.

Saat mengonversi ke format RAW, Anda juga memiliki peluang besar bahwa file dapat digabungkan.

ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi

Tetapi menggunakan catcara ini membuat file perantara, yang tidak perlu. Ini adalah pendekatan yang lebih baik untuk menghindari membuat file-file perantara:

ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
ffmpeg -i concat:"intermediate1.mpg|intermediate2.mpg" -c copy intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi
Marco
sumber
1
Apakah Anda masih membuat file perantara di versi kedua?
John Gowers
6

Ada dua jenis file media

  • streamable

  • tidak dapat dialirkan

Perbedaan utama adalah bagaimana kedua format file menanamkan meta-informasi. dengan non-streamable format yang tidak , meta-informationc ("header") disimpan pada posisi tertentu dalam file, biasanya di awal, kadang di akhir. Anda tidak bisa begitu saja menyatukan file seperti itu, karena meta-informasi dari salah satu file file akan berada di lokasi yang tidak standar dan karenanya diabaikan.

OTOH, format streamable harus mampu menangani pendengar yang akan mulai memutar file "di suatu tempat di tengah". Oleh karena itu format ini terus mengirim ulang meta-informasi dan bahkan memungkinkan memperbaruinya dalam file / stream. Format-format ini dapat disatukan.

umläute
sumber
Misalnya, ogg: stackoverflow.com/questions/27980960/…
BlackShift
1

Seperti kata BЈовић, secara umum, setiap file memiliki headernya sendiri. Coba dengan contoh ini dari Ubuntu How To's :

mencoder -ovc copy -oac copy video1.avi video2.avi -o completevideos.avi 
berdering
sumber
0

Tidak, itu tidak mungkin, karena setiap file video memiliki tajuk. Untuk menggabungkan video, Anda perlu menggunakan alat (seperti misalnya ffmpeg atau mencoder ).

BЈовић
sumber
9
Tidak sepenuhnya benar. Ada format video tanpa header, misalnya rawvideo atau yuv4mpegpipe yang menghasilkan data mentah. Itu sebabnya Anda harus memberikan ukuran bingkai saat membaca format tersebut, karena ukurannya tidak diketahui karena tajuk yang hilang.
Marco
2
Kenapa saya berhasil melakukannya dengan file DV?
Pithikos
1
@Pithikos tidak tahu. mungkin Anda berlatih sihir :)
--овић