Sau quá trình học tập và làm việc với FFMPEG, mình phải khẳng định rằng FFMPEG là một phần mềm xử lý audio, video đơn giản, miễn phí và hiệu quả. Vì vậy, bài viết này sẽ hướng dẫn tìm hiểu FFmpeg cơ bản.

Trước khi bắt đầu đọc bài viết này, mình mong bạn hiểu rõ các vấn đề sau:
- FFMPEG là hoàn toàn miễn phí, mã nguồn mở. Do đó bạn hoàn toàn yên tâm sử dụng nó ở bất kì đầu mà không sợ vi phạm bản quyền.
- Sử dụng FFMPEG để xử lý audio, video – nghĩa là bạn phải sử dụng dòng lệnh thông qua Command line (cmd). Nếu bạn cảm thấy mình lười trong việc sử dụng câu lệnh và mong muốn có một giao diện để xử lý audio, video thì mình xin lỗi rằng bài viết này không dành cho bạn. Mình xin cám ơn và hẹn gặp lại bạn ở các bài viết khác.
- Nếu bạn đọc đến đây thì có nghĩa là bạn tò mò và sẵn sàng sử dụng FFMPEG. Có thể bạn cũng đang hướng tới sự tự do và đơn giản. Cũng giống như một triết lý nổi tiếng của Lý Tiểu Long đó là:
Cảnh giới cao nhất trong võ thuật là lấy vô chiêu thắng hữu chiêu. Không có chiêu thức chính là chiêu thức tối thượng.
Không làm mất thời gian của bạn nữa, sau đây chúng ta sẽ cùng đi tìm hiểu xem FFMPEG rốt cuộc nó là cái gì, nó có sức mạnh lớn đến mức nào.
Tìm hiểu tổng quan FFMPEG cơ bản
FFMPEG là gì?
FFMPEG là một framework hàng đầu về đa phương tiện (xử lý audio, video). Nó có thể decode (giải mã), encode (mã hóa), transcode (chuyển mã), mux (ghép kênh), demux (phân kênh, tách kênh), stream (ví dụ như livestream trên youtube, facebook,..), filter (lọc) và play (chạy, phát video) rất nhiều thứ mà con người hay máy móc tạo ra.
FFMPEG hỗ trợ hầu hết các định dạng. Và nó khá là linh hoạt, có thể compile, run và chạy trên nhiều nền tảng như Linux, Mac OS X, Microsoft Windows, BSD, Solaris,…và ở trên nhiều môi trường, kiến trúc khác nhau.
Nó chứa các thư viện libavcodec, libavutil, libavformat, libavfilter, libavdevice, libswscale và libswresample. Chúng có thể được sử dụng bởi ứng dụng. Cũng giống như ffmpeg, ffserver, ffplay và ffprobe được sử dụng để transcoding, streaming và playing.
Rõ ràng, FFMPEG là một phần mềm xử lý audio, video đơn giản, miễn phí và hiệu quả. Dù bạn là lập trình viên hay là một người sử dụng bình thường thì đều có thể sử dụng được FFMPEG cho những mục đích của mình.
FFMPEG công cụ tiện ích để xử lý Audio, Video
FFMPEG cung cấp sẵn cho người dùng những tiện ích là: ffmpeg, ffserver, ffplay và ffprobe.
- ffmpeg: Tiện ích dựa trên command line giúp người sử dụng chuyển đổi định dạng tệp tin (hỗ trợ rất nhiều định dạng khác nhau).
- ffserver: Server cho việc streaming.
- ffplay: Một chương trình đơn giản giúp chạy, phát video dựa trên thư viện SDL và ffmpeg.
- ffprobe: Một chương trình đơn giản giúp phân tích việc stream các tệp tin đa phương tiện.
Các gói thư viện của FFMPEG
- libavutil: là một thư viện chứa các hàm cho việc đơn giản chương trình, bao gồm việc sinh ra số ngẫu nhiên, cấu trúc dữ liệu, chương trình toán học, tiện ích đa phương tiện cơ bản,…
- libavcodec: là một thư viện chứa bộ encoder (mã hóa) và decoder (giải mã) cho audio/video.
- libavformat: là thư viện chứa bộ demuxer (phân kênh) và muxer (ghép kênh) cho những định dạng đa phương tiện.
- libavdevice: là thư viện chứa những thiết bị đầu vào và đầu ra cho việc lấy vào hay xuất ra nội dung đa phương tiện với những phần mềm phổ biến như Video4Linux, Video4Linux2, VfW, and ALSA.
- libavfilter: là thư viện cho việc lọc video.
- libswscale: là thư viện cho việc tối ưu hóa ảnh về co dãn, màu sắc,…
- libswresample: là thư viện cho việc tối ưu hóa về việc lấy mẫu lại audio,…
Lời kết
Trên đây là những gì mình tìm hiểu được về FFMPEG và những công cụ của nó ffpmeg, ffserver, ffplay, ffprobe. Để tìm hiểu sâu hơn, bạn có thể vào trang chủ của ffmpeg tại đây.
Hy vọng, bài viết trên đây có thể giúp ích cho bạn. Nếu có gì thắc mắc bạn có thể để lại comment phía dưới cho mình.
Xin chào và hẹn gặp lại bạn ở bài viết tiếp theo, thân ái!
Có thể bạn quan tâm: