Cách cắt và xén video với ffmpeg

How Cut Crop Video With Ffmpeg



Hướng dẫn này giải thích cách cắt và xén video từ dòng lệnh bằng ffmpeg.

FFmpeg là một bộ công cụ và thư viện đa dạng, mã nguồn mở để chỉnh sửa đa phương tiện và luồng từ dòng lệnh. Nó hỗ trợ mã hóa và giải mã hầu hết các định dạng đa phương tiện, bao gồm cả các tệp không phổ biến. Sau khi đọc hướng dẫn này bao gồm quy trình và ảnh chụp màn hình video, bạn sẽ biết cách cắt và xén video bằng ffmpeg.







Cài đặt ffmpeg:

Để cài đặt ffmpeg trên các bản phân phối Linux dựa trên Debian, hãy sử dụng lệnh apt như minh họa trong ví dụ bên dưới.



sudođúng cáchTải về ffmpeg



Để cài đặt ffmpeg trên Redhat / Centos, hãy chạy các lệnh bên dưới:





yum localinstall cài đặt yum ffmpegffmpeg-devel

Cách cắt video bằng ffmpeg:

Cắt video bằng ffmpeg là một công việc khá đơn giản, nhanh chóng và tiêu tốn ít tài nguyên bằng cách sử dụng ffmpeg. Bạn chỉ cần xác định thời gian bắt đầu hoặc kết thúc, hoặc cả hai nếu cần và tệp đầu ra. Tôi sẽ làm việc với cái này Video gợi ý về Linux (thời lượng 00: 03: 280) Tôi vừa tải xuống cho hướng dẫn này.

Lệnh dưới đây sử dụng ffmpeg để cắt video từ 00:00:05 thứ hai được chỉ định với cờ -ss; đây là lá cờ để xác định điểm bắt đầu cho video mới của bạn trong trường hợp bạn muốn cắt một phần của phần đầu. Nếu chỉ muốn cắt một phần cuối video, bạn không cần sử dụng cờ này. Như bạn có thể thấy, định dạng thời gian phải là HH: MM: SS (Giờ, Phút, Giây). Ví dụ: đối với thời gian 2 phút 3 giây, bạn nên nhập 00:02:03.



Cờ -i được sử dụng để chỉ định tệp sẽ được chỉnh sửa; trong trường hợp này, tệp là LinuxHint-vim.mp4.

Tùy chọn -t được sử dụng để chỉ định phần cuối của tệp mới; trong trường hợp này, video sẽ kết thúc lúc 00:02:00. Tương tự với -ss, nếu bạn không muốn cắt một phần cuối video mà chỉ cắt một phần phần đầu, bạn không cần phải áp dụng cờ này.

Trong trường hợp này, cờ sao chép -c được sử dụng để xác định tệp đầu ra; trong trường hợp này là tệp editvideo.mp4.

ffmpeg -NS00:00:05-tôiLinuxHint-vim.mp4-NS00:02:00-NSsao chép editvideo.mp4

Toàn bộ hoạt động diễn ra trong vài giây mà không tốn tài nguyên máy tính.

Ví dụ tiếp theo cho thấy cách chỉ cắt một phần cuối của video 00:03:28 giây. Do đó, tôi bỏ qua tùy chọn -ss vì tôi muốn giữ lại điểm bắt đầu và tôi cắt video lúc 00:02:00 bằng cách triển khai cờ -t.

ffmpeg -tôiLinuxHint-vim.mp4-NS00:02:00-NSsao chép editvideo2.mp4

Trái ngược với ví dụ trước, lệnh bên dưới chỉ cắt một phần video bắt đầu bằng cách sử dụng cờ -ss. Trong trường hợp này, đầu ra mới sẽ bắt đầu từ 00:01:30.

ffmpeg -NS00:01:30 -tôiLinuxHint-vim.mp4-NSsao chép editvideo3.mp4

Như bạn có thể thấy, cắt video bằng ffmpeg là một quá trình đơn giản và nhanh chóng.

Cắt các đường viền đen bằng ffmpeg:

Phần này của hướng dẫn mô tả cách cắt video bằng ffmpeg.

Bạn có thể sử dụng ffmpeg để cố gắng tự động phát hiện cách cắt video của bạn để loại bỏ viền đen.

Đối với ví dụ này, tôi sẽ sử dụng 320 × 240 băng hình trông giống như sau:

Lệnh bên dưới sẽ cố gắng phát hiện kích thước và vị trí chính xác để cắt video một cách chính xác.

ffmpeg -tôilinux-foundation.mp4-vfcropdetect-NSvô giá trị -2> &1 | awk '/ crop / {print $ NF}' | đuôi -1

Như bạn có thể thấy, ffmpeg trả về các vị trí chiều rộng (320), chiều cao (208), X và Y thích hợp để cắt video một cách chính xác.

Vị trí X : Vị trí X xác định điểm bắt đầu cắt ngang từ lề trái, trong đó lề trái là 0.

Vị trí Y : Y là điểm bắt đầu cắt xén theo chiều dọc trong đó lề trên cùng là 0.

Ví dụ bên dưới video sẽ được cắt xén; bạn có thể thấy cờ -filter: v.

Cờ -filter triển khai một biểu đồ lọc phân chia luồng đầu vào, cắt nó và phủ nó với luồng khác. Như bạn có thể thấy, các kích thước và vị trí được xác định trong lệnh dưới đây được cung cấp bởi lệnh trước.

Ngoài ra, bạn có thể thấy bản sao cờ -c đã bị bỏ qua và tên tệp đầu ra được viết ngay sau cờ cắt.

ffmpeg -tôilinuxfoundation.mp4 -filter: v'crop = 320: 208: 0: 16'output.mp4

Như bạn có thể thấy, các đường viền màu đen đã bị loại bỏ:

Giới thiệu về việc cắt xén video bằng ffmpeg:

Bạn có thể cắt bất kỳ phần nào của video bằng kỹ thuật trước đó, không chỉ các đường viền đen.

Lệnh dưới đây sẽ cắt video trước đó, trả về hình ảnh 200 × 200, bắt đầu từ 200px từ lề trái và 0px từ lề trên.

fffmpeg-tôioutput.mp4 -filter: v'crop = 200: 200: 200: 0'output2.mp4

Và đây là video đã cắt:

Tất nhiên, bạn có thể xác định các loại thước đo khác, chẳng hạn như hình chữ nhật.

Video chúng ta sẽ thực hiện (giống như phần hướng dẫn đầu tiên) có dạng như hình bên dưới.

Trong ví dụ đầu tiên này, chúng tôi chỉ xác định kích thước đầu ra nhưng không xác định vị trí. Nếu bạn không chỉ định vị trí, ffmpeg sẽ tự động cắt giữa video . Do đó, trong ví dụ dưới đây, trong đó chỉ có chiều cao và chiều rộng video được xác định nhưng không có vị trí, ffmpeg sẽ cắt video và trả về đầu ra được cắt 500 × 500 ở giữa video.

ffmpeg -tôiLinuxHint-vim.mp4 -filter: v'crop = 500: 500'LinuxHintvideo2.mp4

Và chúng tôi nhận được đầu ra 500x500px đã cắt:

Nếu cần, bạn có thể sử dụng lệnh ffmpeg kết hợp với grep để tìm hiểu độ phân giải video gốc, như hình dưới đây.

ffmpeg -tôiLinuxHint-vim.mp42> &1 | nắm chặtBăng hình:| nắm chặt -Po ' d {3,5} x d {3,5}'

Nếu bạn thích sự đơn giản và hiệu suất của ffmpeg, bạn có thể truy cập tài liệu chính thức của ffmpeg tại đây để tìm hiểu về nhiều tính năng và chức năng bổ sung có sẵn để chỉnh sửa phương tiện.

Phần kết luận:

Cắt và xén phương tiện từ dòng lệnh khá dễ dàng với sự trợ giúp của ffmpeg. Một trong những lợi thế chính của ffmpeg là tiêu thụ tài nguyên thấp và tốc độ nhanh.
Hướng dẫn này cho thấy bất kỳ cấp độ người dùng Linux nào hoặc bất kỳ người nào không có kiến ​​thức về chỉnh sửa video đều có thể chỉnh sửa video ở chế độ văn bản một cách chuyên nghiệp bằng cách học một vài lệnh và cú pháp thân thiện. FFmpeg là đa định dạng, làm cho nó trở thành một công cụ tiêu chuẩn tuyệt vời để chỉnh sửa các tệp video và âm thanh từ dòng lệnh. FFmpeg là một phần của các công cụ được biết đến rộng rãi như VLC player và được đưa vào xử lý cốt lõi cho iTunes và Youtube.

Tôi hy vọng hướng dẫn này hữu ích. Tiếp tục theo dõi Gợi ý Linux để biết thêm các mẹo và hướng dẫn về Linux.