Có thể hợp nhất các tệp video bằng cách sử dụng `cat` không?


17

Tôi tự hỏi nếu nó có thể hợp nhất các tập tin video bằng cách sử dụng catlệnh? Tôi có nghĩa là các tập tin kết quả sẽ chơi liền mạch?


1
Bạn đã thử chưa
Ông Lister

3
Tôi đã thực sự làm. Nhưng bằng cách nào đó, kết quả không chứa tệp thứ hai mặc dù kích thước tệp là tổng của cả hai.
Hamed Momeni

Câu trả lời:


20

Vâng, nó là có thể. Nhưng không phải tất cả các định dạng đều hỗ trợ nó.

Câu hỏi thường gặp về ffmpeg :

Một vài thùng chứa đa phương tiện (MPEG-1, MPEG-2 PS, DV) cho phép tham gia các tệp video bằng cách ghép chúng lại.

Khi chuyển đổi sang định dạng RAW, bạn cũng có khả năng cao các tệp có thể được nối.

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

Nhưng sử dụng cattheo cách này tạo ra các tệp trung gian, không cần thiết. Đây là một cách tiếp cận tốt hơn để tránh tạo các tệp trung gian đó:

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

1
Bạn vẫn đang tạo tập tin trung gian trong phiên bản thứ hai chứ?
John Gowers

6

Có hai loại tệp phương tiện

  • truyền phát

  • không truyền phát

Sự khác biệt chính là cách hai định dạng tệp nhúng thông tin meta. với các định dạng không thể phát trực tuyến , meta-informationc ("tiêu đề") được lưu trữ tại một vị trí cụ thể trong tệp, thường là ở đầu, đôi khi ở cuối. Bạn không thể đơn giản ghép các tệp như vậy, vì thông tin meta từ một trong các tệp tệp sẽ ở vị trí không chuẩn và do đó bị bỏ qua.

OTOH, các định dạng có thể phát trực tuyến cần có khả năng xử lý các trình nghe sẽ bắt đầu phát tệp "ở đâu đó ở giữa". Do đó, các định dạng này tiếp tục gửi lại thông tin meta và thậm chí cho phép cập nhật nó trong tệp / luồng. Các định dạng này có thể được nối đơn giản.



1

Như BЈовић đã nói, nói chung, mỗi tệp có tiêu đề riêng. Hãy thử với ví dụ này từ Ubuntu Cách thực hiện :

mencoder -ovc copy -oac copy video1.avi video2.avi -o completevideos.avi 

0

Không, điều đó là không thể, bởi vì mọi tệp video đều có tiêu đề. Để hợp nhất video, bạn cần sử dụng một công cụ (ví dụ như ffmpeg hoặc mencoder ).


9
Không hoàn toàn chính xác. Có các định dạng video không có tiêu đề, ví dụ rawvideo hoặc yuv4mpegpipe sẽ xuất dữ liệu thô. Đó là lý do tại sao bạn phải cung cấp kích thước khung hình khi đọc các định dạng đó, vì kích thước không xác định do tiêu đề bị thiếu.
Marco

2
Tại sao tôi chỉ thực hiện thành công với các tệp DV sau đó?
Pithikos 17/03/13

1
@Pithikos không có ý kiến. có lẽ bạn thực hành phép thuật :)
Bовић 18/03/13
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.