Sử Dụng FFMPEG với những câu lệnh đơn giản
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 ...
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
-acodec : định dạng audio
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:
Format Video Resolution SQCIF 128 × 96 QCIF 176 × 144 SCIF 256 x 192 SIF(525) 352 x 240 CIF/SIF(625) 352 × 288 4SIF(525) 704 x 480 4CIF/4SIF(625) 704 × 576 16CIF 1408 × 1152 DCIF 528 × 384
_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 WMV sang FLV: ffmpeg -i audio1.wmv audio1.flv
_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
K_hi 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à indext 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.