Tham gia H264 * mà không * mã hóa lại


39

Tôi có hai nửa chương trình đơn trong hai tệp .MP4, được mã hóa trong H264. Tôi muốn tham gia với họ mà không cần mã hóa lại.

Điều này có thể không?

Tôi đã quản lý để tạo video đã tham gia dưới dạng tệp Quicktime (.mov) bằng Quicktime Pro, nhưng sau đó Quicktime Pro sẽ không chuyển đổi lại thành .MP4 mà không cần mã hóa lại. Điều này có thể là do nhìn vào bên trong tệp .mov, hai video H264 vẫn ở đó được phân tách thành các "đối tượng" riêng lẻ.

Tôi cũng đang vật lộn với MPEG StreamClip mà không đạt được một giải pháp thực sự. Nhưng tôi có thể đã bỏ lỡ một cái gì đó.

Lưu ý rằng tôi không có vấn đề tương tự với các tệp MPEG2. Tôi có thể xuất chúng sang bộ chứa .MPEG hoặc tệp .TS, sau đó tôi có thể tham gia chúng mà không cần mã hóa lại bằng MPEG Streamclip.

Mọi đề nghị đều được chào đón, tốt nhất là sử dụng phần mềm Mac.


1
Tất nhiên các video cần phải có các khía cạnh giống nhau để được nối mà không cần mã hóa lại (cùng kích thước, bitrate, v.v.). Bạn sẽ có thể làm điều đó trong VirtualDubMOD: mở MP4, sau đó chắp thêm phân đoạn .
Synetech

Câu trả lời:


41
ffmpeg -i q.mp4 -c copy -bsf h264_mp4toannexb q.ts

ffmpeg -i r.mp4 -c copy -bsf h264_mp4toannexb r.ts

ffmpeg -i "concat:q.ts|r.ts" -c copy -bsf aac_adtstoasc qr.mp4

Làm thế nào để nối tập tin flv thành một


Nếu là m4v (không phải h264 mp4) thì nên sử dụng bsf nào?
Edison

2
Tôi rời đi -bsf aac_adtstoascvì lệnh concat
Csaba Toth

Tôi cần phải bỏ qua tất cả các -bsfđối số, sau đó nó làm việc cho tôi.
KittMedia

Làm điều này trên MacOS 10.13.3, tôi đã bỏ qua tất cả những -bsf xxxthứ có kết quả tốt. Tuy nhiên lần thứ 2 tôi đã thử nó, nửa sau của bộ phim kết hợp đã bị hỏng. Hóa ra, vì những lý do không rõ, Handbrake đã mã hóa hai nửa với chiều rộng khác nhau (640 so với 636). Tôi đã sử dụng cùng một cài đặt trước trong cả hai trường hợp. Dù sao, tôi đã quay lại và sử dụng Handbrake một lần nữa vào hiệp 1, giờ đã khớp với hiệp 2. Bộ phim kết hợp lại là ổn. Mẹo: exiftool sẽ hiển thị mọi thứ về tệp mp4 / m4v.
Jamie Cox

15

MP4Box sẽ làm điều này cho bạn:

MP4Box -cat File01.m4v -cat File02.m4v File-joined.m4v

MP4Box là nền tảng chéo và hoạt động trên OSX, tuy nhiên tôi đã thử điều này trên Ubuntu Linux với video H264 được tạo bởi Handbrake cho iPhone 4S.

Điều này hoạt động khá nhanh vì các tập tin không được mã hóa lại.


1
Công trình tuyệt vời. Sử dụng sudo apt-get install gpacđể cài đặt nó. Bạn có thể sử dụng dòng lệnh này nếu bạn có nhiều tệp để tham gia:MP4Box $(for file in single*m4v; do echo -cat $file; done) joined.m4v
guettli

2

Lựa chọn Quicktime MP4 Codec có chế độ "chuyển qua".

Dưới đây là một công thức chi tiết đầy đủ để tham gia hai video MP4 H264, sử dụng Quicktime. Lưu ý rằng Quicktime X chưa đủ nâng cao, vì vậy hãy sử dụng Quicktime 7 (cài đặt tùy chọn với Snow Leopard):

  1. Mở hai video H264 trong Quicktime 7. Giả sử chúng được đặt tên là video1.mp4 và video2.mp4.
  2. Làm việc trên video1.mp4, chọn Tất cả, sau đó Sao chép.
  3. Chuyển sang video2.mp4, đảm bảo "con trỏ" ở đầu video, sau đó Dán. Điều này sẽ chèn nội dung của video1.mp4 ở phía trước video2.mp4.
  4. Bước này có lẽ là tùy chọn . "Lưu dưới dạng" video2.mp4 đã sửa đổi. Bạn sẽ chỉ có thể lưu ở định dạng .mov. Tôi đã lưu dưới dạng một bộ phim độc lập, nhưng tôi cho rằng một bộ phim tham khảo cũng sẽ hoạt động. Tôi đã sử dụng tên tệp "video.mov".
  5. Chọn "Xuất" trong menu tệp để xuất video.mov sang tệp H264 đã tham gia. "Xuất" để chọn là "Phim thành MPEG-4". Giá trị đặt trước không quan trọng, tôi chọn "LAN / Intranet". Giá trị đặt trước không quan trọng vì chúng tôi ghi đè lên trong bước tiếp theo.
  6. Nhấp vào "Tùy chọn" để đến hộp thoại cài đặt. Trong ngăn Video, "Định dạng video" được chọn là "H.264". Nhấp vào menu, chọn "Chuyển qua". Theo dự kiến, tất cả các tùy chọn khác sẽ bị vô hiệu hóa.
  7. Nhấp vào OK, sau đó Lưu và xem tệp đã tham gia của bạn được lưu ở tốc độ của đĩa cứng.

Bạn cũng có thể sử dụng SimpleMovieX , trình chỉnh sửa video phần mềm chia sẻ chính xác quảng cáo đây là một tính năng.


1
Lưu trong Mov tôi giả sử sẽ cần một số hình thức mã hóa lại không may.
Csaba Toth

0

Tôi nghĩ điều này là có thể, mặc dù hai phần có thể cần phải "giống nhau" một số cách nhất định (độ phân giải, v.v.) để tham gia hoạt động. Điều này có vẻ như nó có thể sẽ là trường hợp với tình huống của bạn.

Bạn có thể thử công cụ này: http://www.smlabs.net/tsmuxer_en.html ... Tôi chưa sử dụng nó nhưng nó liệt kê cụ thể các tệp tham gia như một phần của bộ tính năng của nó và H.264 là một trong những mã hóa được hỗ trợ.


Cảm ơn các liên kết. Tôi không thể thử nó vì trang web nói rằng chương trình này không hỗ trợ Snow Leopard. Hơn nữa, tôi chỉ tìm thấy một giải pháp làm việc chỉ sử dụng Quicktime (xem câu trả lời của tôi). Ngoài ra, mặc dù tôi không biết trong trường hợp này, một số công cụ quảng cáo tham gia tệp video nhưng làm như vậy với mã hóa lại đầy đủ, đây là cách gây hiểu lầm tốt nhất.
jdmuys

Lời xin lỗi của tôi; Tôi đọc sai bit đó trên trang web. Vui mừng bạn đã tìm thấy một cách tiếp cận đơn giản hơn - có vẻ lạ rằng cần phải có một công cụ đặc biệt cho việc này.
Zac Thompson

0

Sử dụng mkvtoolnix . Sau đó mở "mkvtoolnix-gui.exe" (trong windows 8.1 64 bit, nó nằm ở: C: \ Program Files \ MKVToolNix \ mkvtoolnix-gui.exe). Thêm tập tin đầu tiên. Sau đó chọn tệp đầu tiên này và nhấp chuột phải vào "chắp thêm tệp" và chọn (các) tệp mà bạn muốn hợp nhất. Có thể thay đổi thư mục đích và tên tệp. Sau đó, cuối cùng bấm vào "bắt đầu ghép kênh".

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.