Làm cách nào tôi có thể nối hoặc hợp nhất 2 hoặc nhiều tệp MP4, trong một tệp MP4 đầu ra cuối cùng?
Tôi đã thử trong cửa sổ DOS để sử dụng lệnh COPY (tôi đã đọc nó ở đâu đó) nhưng nó không hoạt động tốt.
Làm cách nào tôi có thể nối hoặc hợp nhất 2 hoặc nhiều tệp MP4, trong một tệp MP4 đầu ra cuối cùng?
Tôi đã thử trong cửa sổ DOS để sử dụng lệnh COPY (tôi đã đọc nó ở đâu đó) nhưng nó không hoạt động tốt.
Câu trả lời:
MP4Box có thể làm điều này, mặc dù bạn có thể muốn sử dụng GUI cho nó như YAMB hoặc GUI MP4Box của tôi . (NB: Cá nhân tôi không phải là chương trình của tôi , đó chỉ là tên.) Các tệp nhị phân MP4Box cho Windows có sẵn từ trang web này .
Thí dụ:
MP4Box -tmp $HOME -add vid.01.m4v \
-cat vid.02.m4v -cat vid.03.m4v vid-out.mp4
Tôi khuyên bạn nên sử dụng ffmpeg , có sẵn cho Mac OS X, Linux và Windows .
Đây là một bài kiểm tra tốt về cách ghép hai bộ phim: http://www.ffmpeg.org/faq.html#SEC27
Ở bước cuối cùng, bạn chỉ cần đảm bảo rằng bạn tạo một thùng chứa MP4, cho tệp kết quả.
Bạn có thể thử làm điều này với ffmpeg:
mkfifo temp0 temp1
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4
Điều này không mã hóa lại bất cứ thứ gì, nó đặt chúng vào một thùng chứa luồng vận chuyển mới, giúp chúng dễ dàng ghép nối hơn, sau đó ghép chúng lại thành một MP4. Nếu output.mp4 đã tồn tại, lệnh sẽ thất bại. Phiên bản trên sử dụng các đường dẫn có tên, đó là trên hệ thống không hỗ trợ những người bạn phải sử dụng các tệp trung gian:
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -absf aac_adtstoasc output.mp4
Cập nhật: Chỉ cần kiểm tra avidemux như tôi đã cài đặt, sau khi đọc câu trả lời khác. Đó là những gì bạn đang tìm kiếm (không nghĩ rằng nó có thể làm MP4 vì tên của nó).
Tôi nghĩ VirtualDubMod có khả năng mp4, mặc dù vậy tôi đã không sử dụng nó vì vậy tôi không chắc chắn.
Bạn có thể muốn kiểm tra MeGUI . Đây là một ứng dụng và công cụ khá phức tạp và giàu tính năng.
Công cụ để nhúng vào một thùng chứa (mp4 trong trường hợp của bạn) được gọi là muxer, mà người ta có thể không thể nối chúng mặc dù.
Bạn có thể sử dụng nó kết hợp với VirtualDub. Virtualdub để nối các luồng video và muxer để biến nó thành mp4 một lần nữa (mà không phải mã hóa lại).
Tôi đang làm điều đó với mencoder, sau khi đã chuyển đổi chúng thành avi với ffmpeg
đây là một tập lệnh đơn giản, giả sử bạn có 15 tệp, được đặt tên là 01.mp4 ... 15.mp4
#!/bin/bash
for j in `seq -w 1 15`;
do
echo converting file $j.avi
ffmpeg -i $j.mp4 $j.avi
echo adding file $j.avi to list
z="$z $j.avi"
done
echo doing append
mencoder -oac copy -ovc copy $z -o all.avi
chúc mừng
Đây là lệnh:
ffmpeg -i concat:"video1.ts|video2.ts"