Hướng dẫn sử dụng FFMPEG Tools và các câu lệnh xử lý Video, Audio, image

Để hiểu rõ hơn, cũng như biết nhiều hơn về các câu lệnh của FFMPEG, bạn có thể vào trang chủ của nó, tại đây. Sau đây, mình sẽ tóm tắt lại một số những câu lệnh mà theo mình nó phù hợp với những người sử dụng bình thường và dĩ nhiên nó rất hiệu quả.

Trước tiên, để sử dụng tiện ích của FFmpeg, bạn phải mở CMD lên. Vì chúng ta đã cài đặt biến môi trường cho phần mềm nên bạn có thể mở CMD lên ở mọi thư mục và sử dụng FFMPEG. Để mở CMD ở một thư mục, bạn nhấn Shift, đồng thời nhấn chuột phải, rồi chọn Open command window here. Lúc này, bạn có thể sử dụng FFMPEG để xử lý audio, video được rồi.

FFmpeg toolsFFmpeg tools

Công cụ FFMPEG

Một chú ý nhỏ trước khi bắt đầu đó là: các ảnh, audio và video có thể có nhiều định dạng khác nhau. Tuy nhiên, sau đây mình sẽ chỉ ví dụ mặc định với ảnh .png, audio .mp3 và video .mp4

Ý nghĩa một số loại option của code FFmpeg

  • i : đầu vào input
  • f : định dạng format
  • vn : vô hiệu hóa việc recoding video trong quá trình chuyển đổi
  • ar : cài đặt thông số tần số lấy mẫu của audio (sample rate)
  • ac : cài đặt số kênh (channel) của audio
  • ab : cài đặt audio bitrate
  • vf : cài đặt bộ lọc video (video filter)

Các câu lệnh FFMPEG xử lý file Video, Audio

Sau đây là tổng hợp các câu lệnh code FFmpeg cơ bản để xử lý, cắt, ghép các file video, audio, image

Code FFmpeg hiển thị thông tin của file

ffmpeg -i input.mp4

Code FFmpeg chuyển đổi ảnh thành video

ffmpeg -f image2 -i img%d.png video.mp4

Trong đó, img%d.png là tất cả những ảnh đầu vào của bạn trong thư mục hiện tại và video.mp4 là tên video đầu ra.

Ví dụ: bạn có các bức ảnh img1.png, img2.png,…,img100.png (định dạng có thể là png hoặc jpg,…) và bạn muốn tập hợp lại thành video có tên là video.mp4 (có thể là định dạng khác như .avi, .mpg,…).

Thực tế thì chức năng này chỉ có ích khi bạn có rất nhiều bức ảnh là tập hợp các Frame của video. Và dĩ nhiên video này sẽ không có âm thanh.

Code FFmpeg chuyển đổi video thành ảnh

ffmpeg -i video.mp4 image%d.png

Ở đây, đầu vào là file video có tên là video.mp4 và đầu ra là các ảnh có tên dạng image%d.png (image1.png, image2.png, image3.png,…)

Code FFmpeg tách âm thanh từ video và lưu lại thành file mp3

ffmpeg -i video.mp4 -vn -ar 44100 -ac 2 -ab 192k -f mp3 sound.mp3

Trong đó:

  • File video đầu vào có tên: video.mp4
  • Tần số lấy mẫu sample rate: 44100 Hz.
  • Audio bitrate: 192kb/s
  • Đầu ra: định dạng .mp3
  • Tên file đầu ra là: sound.mp3

Code FFmpeg chuyển đổi định dạng video

ffmpeg -i video_input.xxx video_output.yyy

Trong đó:

  • File đầu vào là video_input.xxx với xxx là các định dạng video của file đầu vào: mp4, avi, mpg, flv,…
  • File đầu ra là video_output.yyy với yyy cũng là các định dạng video của file đầu ra: mp4, avi, mpg, flv,…

Ví dụ, mình muốn chuyển từ định dạng flv sang mp4, thì câu lệnh sẽ là:

ffmpeg -i video_input.flv video_output.mp4

Code FFmpeg chuyển video thành ảnh động .gif

ffmpeg -i video.mp4 gif_anime.gif

Trong đó:

  • File video đầu vào là video.mp4
  • Ảnh động đầu ra là: gif_anime.gif

Code FFmpeg ghép video với một file âm thanh

ffmpeg -i sound.mp3 -i video_input.mp4 video_output.mp4

Trong đó:

  • Tệp tin âm thanh đầu vào là sound.mp3
  • Tệp tin video đầu vào là video_input.mp4
  • Tệp tin video đầu ra là video_output.mp4

Chú ý: độ dài video đầu ra sẽ là độ dài lớn hơn của một trong hai cái đầu vào.

Code FFmpeg tăng – giảm tốc độ video

ffmpeg -i video.mp4 -vf "setpts=0.5*PTS" highspeed.mp4

Trong đó:

  • video.mp4 là video đầu vào
  • setpts=0.5*PTS giúp tăng tốc video lên gấp 2 lần
  • File video đầu ra là: highspeed.mp4

Nếu muốn giảm tốc độ đi 2 lần thì chỉ cần thay đổi thành:

ffmpeg -i video.mp4 -vf "setpts=2*PTS" highspeed.mp4

Còn muốn tốc độ khác thì bạn tự suy luận ra nhé.

Code FFmpeg thêm ảnh vào audio và xuất bản thành video

ffmpeg -loop 1 -i image.png -i sound.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

Trong đó:

  • File ảnh đầu vào là image.png
  • File âm thanh đầu vào là sound.mp3
  • File video đầu ra là: output.mp4

Code FFmpeg thêm phụ đề cho video

ffmpeg -i video.mp4 -i subtitles.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast video-output.mp4

Trong đó:

  • File video đầu vào là video.mp4
  • File phụ đề đầu vào là subtitles.srt
  • File video đầu ra là video-output.mp4

Code FFmpeg cắt lấy một phần nhỏ của video

ffmpeg -i video.mp4 -ss 00:00:50.0 -codec copy -t 20 output.mp4

Trong đó:

  • File đầu vào là video.mp4
  • Option ss để chỉ ra thời điểm bắt đầu của video đầu ra. Tiếp theo sau là thời gian theo định dạng HH:MM:SS.ms
  • Option t để chỉ ra thời lượng của video đầu ra. Sau đó là thời gian tính theo giây.

Code FFmpeg chia video ra thành nhiều phần

ffmpeg -i video.mp4 -t 00:00:50 -c copy small-1.mp4 -ss 00:00:50 -codec copy small-2.mp4

Trong đó:

  • File video đầu vào là video.mp4
  • File sẽ được chia làm 2 phần: phần 1 có tên small-1.mp4 sẽ có thời lượng 50 giây tính từ đầu video, phần 2 sẽ có tên small-2.mp4 sẽ bắt đầu từ giây thứ 50 và kéo dài đến cuối video

Code FFmpeg ghép video từ những video nhỏ

ffmpeg -f concat -i file-list.txt -c copy output.mp4

Trong đó:

  • File đầu vào là file file-list.txt – chứa tên của các video cần ghép, ở cùng thư mục đang xét.

Ví dụ nội dung file sẽ như sau:

file 'small-1.mp4'
file 'small-2.mp4'
  • File đầu ra là output.mp4

Code FFmpeg tắt âm thanh của video

ffmpeg -i video.mp4 -an mute-video.mp4

Trong đó:

  • File đầu vào là video.mp4
  • Option an là để tắt âm thanh video
  • File đầu ra là mute-video.mp4

Công cụ ffplay

Dùng để chạy, phát video. Câu lệnh đơn giản là:

ffplay dir/video.mp4

Trong đó:

  • dir là đường dẫn đến tệp tin video
  • video.mp4 là tên video

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ó ffmpeg, ffplay. Những câu lệnh trên đây mới chỉ là những câu lệnh đơn giản. Để 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!

Tham khảo thêm