ffmpeg: thêm 3 giây màu đen vào đầu và đuôi video


11

Giả sử tôi có một video, có thể có bất kỳ kích thước hoặc codec nào (ví dụ mp4) và tôi muốn thêm 3 giây khung màu đen vào đầu.

Tôi đã thấy các biến thể khác cho câu hỏi này liên quan đến việc thêm một khung hình duy nhất và cũng có các câu trả lời xác định chiều rộng và chiều cao của video. Tuy nhiên, video có thể có chiều rộng và chiều cao bất kỳ và tôi không muốn thay đổi các giá trị đó. Chỉ cần thêm màu đen. Trong một lệnh riêng biệt, tôi cũng muốn thêm giây màu đen vào đuôi.

Không nên có âm thanh trong phần màu đen - màu đen chỉ nên được nối với mặt trước và cuối. Ngoài ra, tôi muốn tránh mã hóa lại video nếu có thể và sao chép kết quả vào một tệp mới.

Bất kỳ trợ giúp sẽ được đánh giá cao.


Là âm thanh hiện tại? Và bạn có muốn bỏ qua việc mã hóa lại video chính không?
Gyan

@Mulvya cảm ơn cho đầu vào của bạn. Tôi đã cập nhật câu hỏi của mình.
Matt C

@MattC Bạn có thể xóa nhận xét trên ngay bây giờ. Điều này sẽ cần nhiều lệnh, trừ khi bạn mã hóa lại. Ổn chứ?
Gyan

@Mulvya có nhiều lệnh là tốt. Cảm ơn một lần nữa.
Matt C

Câu trả lời:


12

Phương pháp cơ bản để tham gia video mà không cần mã hóa lại là sử dụng bộ giải mã concat. Thiết bị này yêu cầu các tệp được tham gia chia sẻ một số thuộc tính nhất định, như codec, tốc độ khung hình, kích thước video, timebase..vv

Bước đầu tiên là tạo phân đoạn trống, có thể được sử dụng cả ở đầu và đuôi.

ffmpeg -i fullvideo.mp4 -vf trim=0:3,geq=0:128:128 -af atrim=0:3,volume=0 -video_track_timescale 600 3sec.mp4

Phải làm một bước kế toán cho video đầy đủ. Nếu không được thực hiện, video kết hợp có thể sẽ chạy sai tốc độ.

ffmpeg -i fullvideo.mp4 -c copy -video_track_timescale 600 full600.mp4

Tiếp theo, tạo một tệp văn bản.

file 3sec.mp4
file full600.mp4
file 3sec.mp4

Sau đó chạy

ffmpeg -f concat -i list.txt -c copy merged.mp4

Bước đầu tiên của tôi giả định rằng luồng video có định dạng pixel phổ biến nhất yuv420p. Điều này sẽ ổn vì đây là định dạng pixel duy nhất được hỗ trợ bởi trình phát web và máy ảnh trên điện thoại thông minh, máy quay phim của người tiêu dùng..v.v. Nếu không, geqbộ lọc có thể thất bại.

Tôi cũng giả định rằng, toàn bộ video, toàn bộ video không sử dụng nhiều khung tham chiếu hơn so với sản xuất theo cài đặt trước mediumcủa x264. Đó là một giả định an toàn cho 95% video.

Cuối cùng, tôi giả sử video đầy đủ có AAC-LC là codec âm thanh. Dự kiến ​​sẽ đúng với hầu hết các video trên điện thoại / cam / web.

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.