Hướng dẫn giải mã video bằng ffmpeg năm 2024
in chào các bạn, mình là Hưng - Lập Trình Viên AI - AI Engineer. Hiện tại mình đang làm các dự án phần lớn liên quan tới mảng Computer Vision (Thị Giác Máy Tính). Các bài toán mình giải quyết toàn tập trung đến việc xử lí luồng stream từ các cameras, giúp công ty xậy dựng hệ thống VMS (Video Management System), tối ưu hóa và quản lý việc sử dụng Camera, đưa các luồng stream này đến các core ứng dụng AI ví dụ Nhận Diện Khuôn Mặt, Nhận Diện Phương Tiện và Đếm Số Lượng Xe trên đường, ... Do đó, đối với mảng Computer Vision, các bạn cũng cần chút kiến thức về xử lí hình ảnh (Image Processing) và xử lí Video (Video Processing). Hiện tại, có 2 ông lớn cung cấp cung cấp công cụ rất mạnh cho việc xử lý Video đó là FFMPEG và GStreamer. Mỗi công cụ sẽ có ưu và nhược điểm khác nhau, mình sẽ có bài viết khác nói về GStreamer. Các bạn làm việc nhiều với thư viện OpenCV thì biết rằng OpenCV sử dụng backend FFMPEG để giải mã (decode) thông tin video, lấy những frame hình ảnh từ video ra , rồi cuối cùng đưa vào AI model để xử lí (inference). Mình xin ví dụ đoạn code dùng để đọc 1 luồng stream từ Webcam
Khi sử dụng hàm Tuy nhiên, nếu các bạn có để ý thì mọi công đoạn giải mã của FFMPEG sẽ được thực hiện hầu hết ở trên CPU. Các bạn có thể kiểm tra bằng cách sử dụng tool
Ngoài ra, openCV còn cung cấp một function khác sử dụng FFMPEG đó là
FFMPEGSau đây, mình sẽ hướng dẫn các bạn cài FFMPEG theo 2 cách:
1. Giới thiệuFFMPEG là một framework về xử lý đa phương tiện từ âm thanh, video đến streaming đa nền tảng bao gồm các plugins ví dụ như
Bên cạnh đó, sau khi cài đặt FFMPEG, các bạn có thể sử dụng các tool đi kèm theo của nó ví dụ FFPLAY và FFprobe.
2. Cách cài đặtChú ý: Lâu nay mình hay sử dụng môi trường Linux để phát triển ứng dụng, đồng thời việc thao tác xử lí trên Linux lại nhanh và thuận tiện hơn, nên mình xin phép mô tả toàn bộ quá trình trên môi trường Linux. FFMPEG phát hành nhiều versions khác nhau, thì phiên bản 4.4 mình thấy chạy ổn định nhất. 1 số luồng stream sẽ không tương thích với FFMPEG phiên bản cũ. Đặc biệt, nếu bạn đang sử dụng phiên bản Ubuntu 18.04, cài đặt FFMPEG bằng cách này
thì phiên bản FFMPEG 3.4.8. Phiên bản này khá là cũ là thiếu nhiều plugins cũng như lỗi. Vì vậy, mình khuyến khích các bạn cài đặt FFMPEG phiên bản mới hơn là 4.4.
Gói cài đặt FFMPEG dung lượng khoảng trên dưới 100MB, nên sẽ nhanh hay chậm tùy thuộc vào đường truyền mạng nữa. 2. Kiểm tra sau khi cài đặtMình có thể kiểm tra version cuả FFMPEG bằng cách
Trên đây là những bước để cài đặt FFMPEG Mình sẽ cập nhật cách build lại thư viện FFMPEG và tích hợp thêm 1 số plugins của NVIDIA để encode và decode luồng streams bằng GPU. |