FFmpeg và những câu lệnh thường dùng
I. FFMPEG là gì?
FFmpeg là một thư viện có rất nhiều tiện ích cho việc xử lý video. Tính năng nổi bật nhất có lẽ là khả năng encode/decode nhiều video format khác nhau, giúp convert qua lại nhiều định dạng video. Ngoài ra, chúng ta cũng có thể dùng FFmpeg để cắt một đoạn video, crop video, chụp lại các frame và xuất ra dạng hình ảnh,… Điều đó với các bạn dùng Windows thì có khối phần mềm để làm, nhưng nếu bạn muốn làm những việc sau, bạn buộc sẽ cần dùng đến FFmpeg:
- Convert qua lại các định dạng video flv, mp4, avi,…
- Convert đồng loạt các video trong các thư mục khác nhau.
- Cắt một đoạn trong các video.
- Tự động convert video từ mp4, avi sang flv (hoặc ngược lại) mỗi khi upload chúng lên server.
- Chụp screenshot, crop và tự động chụp screenshot làm thumbnail từ 1 frame bất kì của video khi video vừa được upload lên.
II. Hướng dẫn sử dụng FFMPEG đơn giản
- Chuyển đổi định dạng video:
Công thức:
ffmpeg -i <đường dẫn tệp tin> <đường dẫn output>
Trong đó:
_ffmpeg là định danh chương trình
_-i : định nghĩa input file
Ví dụ:
◊ Chuyển đổi MOV sang FLV:
ffmpeg -i movie1.mov movie1.flv
◊ Chuyển đổi Mpeg sang FLV:
ffmpeg -i movie1.mpeg movie1.flv
◊ Chuyển đổi AVI sang FLV (kích thước 500×500):
ffmpeg -i movie1.avi -s 500×500 movie1.flv
-s : kích thước của video output
◊ Chuyển đổi 3GP to FLV (xóa tiếng, chỉ lấy hình):
ffmpeg -i movie1.3gp -sameq -an movie1.flv
◊ Chuyển đổi MPEG sang 3GP:
ffmpeg -i movie1.mpeg -ab 8.85k -acodec libamr_wb -ac 1 -ar 16000 -vcodec h263 -s qcif movie2.3gp
libarm_wb : tên lib arm
-ac : audio chanel kênh phát sóng của audio 1 mono 2 stereo
-ar : audio bitrate số bit âm thanh trên 1 giây
-vcodec : định dạng video
h263,h264 : tên lib định dạng của video
qcif: là định dạng video theo tỷ lệ khung hình
◊ FFV1 Encoding:
ffmpeg -i -vcodec ffv1 -an output.mov
-an : bỏ tiếng video
◊ Chuyển đổi flv sang mpg:
ffmpeg -i myvideo.flv -ar 22050 -b 500 -s 320x240 myvideo.mpg
- Chuyển định dạng audio
_Chuyển đổi aac sang mp3 giữ nguyên các thông tin:
ffmpeg -i audio1.aac -ar 22050 -ab 32 -map_meta_data audio1.mp3:audio1.aac audio1.mp3
_Chuyển đổi WMV sang MP3: ffmpeg -i audio1.wmv audio1.mp3
_Chuyển đổi AMR sang MP3: ffmpeg -i audio1.amr -ar 22050 audio1.mp3
_Chuyển đổi FLV sang MP3: ffmpeg -i movie.flv -vn -acodec copy movie.mp3
- Chuyển một loạt hình ảnh có sẵn thành video và ngược lại
ffmpeg -f image2 -i image%d.jpg video.mpg
_Trong đó image%d.jpg thay thế cho một danh sách các hình ảnh cần chuyển đổi: image1.jpg, image2.jpg …
_Ngược lại chuyển 1 video thành ảnh: ffmpeg -i video.mpg image%d.jpg
_Chuyển đoạn video thành ảnh động .gif, lưu ý là ảnh này chưa nén nên cũng tương đối nặng: ffmpeg -i video_origine.avi gif_anime.gif
- Gắn âm thanh vào đoạn video không tiếng
ffmpeg -i son.wav -i video_origine.avi video_finale.mpg
_Điểm quan trọng ở câu lệnh này là độ khớp hình với tiếng theo ý định của người chuyển.
- Cắt đoạn trong video
_Nếu bạn có một video có thời lượng 45 giây, nhưng bạn muốn rút ngắn nó xuống còn 40 giây thì bạn có thể sử dụng lệnh sau
ffmpeg -i yourvideoname.mp4 -ss 00:00:45 -codec copy -t 40 outputclip.mp4
- Thêm ảnh nền vào tập tin audio
_Bạn hãy di chuyển ảnh nền mà bạn muốn thêm vào tập tin audio vào cùng thư mục “bin” của FFmpegTool và sử dụng lệnh sau để gán vào.
ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a –strict experimental -b:a 192k -shortest outputfile.mp4
- Nối video
_Nếu bạn có những tập tin video theo từng phần và bạn muốn nối chung lại thành 1 tập tin video duy nhất, bạn có thể tiến hành như sau.
_Di chuyển các tập tin video cần nối vào thư mục “bin” của FFmpegTool Mở Notepad lên và nhập đường dẫn tập tin theo cú pháp như hình dưới
Khi nhập xong, hãy lưu lại thành tập tin TXT như “file-list.txt” chẳn hạn. Sau đó nhập vào lệnh sau:
ffmpeg -f concat -i file-list.txt -c copy outputfile.mp4
- Add logo lên video
ffmpeg -i in.mp4 -framerate 25 -loop 1 -i logo.png -filter_complex "[1:v] fade=out:st=30:d=1:alpha=1 [ov]; [0:v][ov] overlay=10:10 [v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy -shortest out.mp4
-filter_complex : hiệu ứng của video và audio, [1:v] lấy input logo.png (1 index của logo trong câu lệnh, v: video vd [0:a] thì trong đó 0 là index và a là audio tức audio của video); fade=out:st=30:d=1:alpha=1 di chuyển trong 30px 1s có alpha di chuyển bằng 1, overlay vị trí hiển thị của logo.
Bài tiếp mình sẽ nói rõ những câu lệnh thường dùng trong biên tập Video đối với dân MMO Youtube. Theo dõi nhé!
Hoai Thuong viết
Bai viet cua ban chi danh cho nhung nguoi da biet roi , con nhung nguoi moi nhu minh thi thuc su thay bao la qua , vi du nhu bay gio minh chi muon lam am thanh thoi , ban co the huong dan 1 bai ve am thanh khong thoi co duoc khong , rat cam on ban
admin viết
Bài này chỉ là giới thiệu cơ bản thôi. Còn lại bạn đọc thêm trong Blog sẽ có nhứng hướng dẫn cụ thể. Chủ yếu là sử dụng ffmpeg cho MMO Youtube.