Các tệp của bạn sẽ không tham gia đúng cách vì có gì đó không khớp.
Giống như nhiều người khác, tôi gặp vấn đề với việc đồng bộ hóa âm thanh trong các video được hợp nhất. và trong khi MP4Box hoạt động tốt nếu các clip có thông số kỹ thuật giống hệt nhau, trong một số trường hợp, tôi sẽ bị đánh bại bởi Không tìm thấy bản nhạc đích phù hợp - tạo cái mới "trong trường hợp Totem (còn gọi là Video) sẽ không phát đoạn đó trong tệp đã tham gia Sau một số thử nghiệm và sai sót và nghiên cứu thêm, tôi đã phát triển phương pháp sau đây để xử lý việc tham gia các video mà cho đến nay vẫn hoạt động với chất lượng chấp nhận được (với tôi).
Nếu kích thước khung không khớp (lỗi liên quan đến các bản nhạc video):
Bình thường hóa video mà không làm gián đoạn âm thanh (-c: bản sao) bằng cách đặt các ràng buộc (chia hết cho 8 để tương thích codec tối đa) cho các phân đoạn chưa từng có
Lệnh ví dụ
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
Nếu Âm thanh không khớp (lỗi liên quan đến các rãnh âm thanh):
Bình thường hóa âm thanh
Xử lý âm thanh mà không làm gián đoạn video (bản sao c: v) sao cho tất cả các clip khớp với codec, tần số và bitrate mong muốn với c: tần số -ar như -ar 48000 và tốc độ bit với b: 128k cho âm thanh nổi (64K mỗi âm thanh kênh có vẻ là một mục tiêu tốt) hoặc bất cứ điều gì phù hợp.
Ví dụ: avconv -i input.mp4 -c:v copy -c:a libmp3lame -ar 48000 b:a 128k output.mp4
(lưu ý rằng libmp3lame là một codec cho âm thanh mp3) Bạn có thể lấy danh sách các bộ mã hóa được hỗ trợ avconv bằng cách phát lệnh avconv -codecs
hoặc thu hẹp mọi thứ vào một mã cụ thể avconv -codecs|grep *codecname*
chẳng hạnavconv -codecs|grep mp3
Bây giờ chúng tôi đã bình thường hóa các tệp, chúng tôi có thể tham gia chúng. Trong ví dụ này tôi sẽ tham gia các tệp với MP4Box. Nếu bạn không có nó, bạn có thể lấy nó bằng cách ra lệnhsudo apt-get install gpac
Tham gia các tệp bằng lệnh MP4Box file1.mp4 -cat file2.mp4 -cat file3.mp4 -cat file4.mp4 -out joinedfile.mp4
(lưu ý rằng không có con mèo nào trước tệp đầu tiên và mỗi tệp bổ sung được bắt đầu bằng -cat và tệp đích được đặt trước -out)
Nếu sử dụng MP4Box (được khuyến nghị cho MP4) để tham gia, bạn có thể thấy rằng bạn phải xử lý tất cả các clip với avconv xem thông số kỹ thuật có khớp hay không để tránh lỗi Lỗi Không tìm thấy bản nhạc đích phù hợp - tạo một bản mới (loại vide)
Lưu ý: Tôi đã thấy Avidemux gặp sự cố với video được mã hóa bằng các tệp H.264 / AVC (trên mỗi totem) do các khung B làm tham chiếu. Điều này dường như dẫn đến âm thanh không đồng bộ khi tham gia ngay cả khi chọn sao chép cả âm thanh và video mà không cần phát lại. Sự cố khi không chọn chế độ an toàn và không đồng bộ khi sử dụng chế độ an toàn
Nguồn:
/superuser/547296/resizing-video-with-ffmpeg-avconv-to-fit-into-static-sized-player
/programming/20703160/probols-with-setting-constant-bitrate-by-USE-avconv
https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_cbr
Lưu ý: Theo như tôi biết các định dạng khác (bộ chứa) có các ràng buộc tương tự để phù hợp với kích thước khung hình và tốc độ âm thanh, do đó, điều này cũng có thể hoạt động với avi nếu bạn thử kết nối qua cat hoặc mencoder sau khi bình thường hóa video và âm thanh .
Tùy chọn: Sử dụng Handbrake để mã hóa lại tệp đã tham gia với kích thước nhỏ hơn nếu muốn với tốc độ khung hình thay đổi và cài đặt chất lượng không đổi 25 (cài đặt được đề xuất - điều chỉnh khi cần theo yêu cầu về chất lượng và vật liệu của bạn)