Code FFmpeg hiển thị thông tin của file
ffmpeg -i test.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 vào: 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 trộn 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ú ý là: độ 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 tăng – giảm tốc độ audio
ffmpeg -i audio.mp3 -af "atempo=2" output.mp3
Trong đó:
atempo=2
giúp tăng tốc audio lên gấp 2 lần
Nếu muốn giảm tốc độ đi 2 lần thì chỉ cần thay đổi thành:
ffmpeg -i audio.mp3 -af "atempo=0.5" output.mp3
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
Code FFmpeg hiện thị một video trên một video khác
ffmpeg -i background.mp4 -vf "movie=video.mp4, scale=250: -1 [inner]; [in][inner] overlay =10: 10 [out]" ouput.mp4
Trong đó:
- File video background là background.mp4
- File video overlay: video.mp4
- Kích thước video overlay: scale=250
- Vị trí hiển thị video overlay: overlay = x: y
- top – left: overlay = 10: 10
- top – right: overlay = main_w-(overlay_w+10): 10
- bottom – left: overlay = 10: main_h-(overlay_h +10)
- bottom – right: overlay = main_w-(overlay_w + 10): main_h-(overlay_h + 10)
Code FFmpeg xóa nền xanh của video và chèn lên một video khác
ffmpeg -i bg.mp4 -i input.mp4 -filter_complex "[0:v]setpts=PTS-STARTPTS [bg];[1:v]loop=-1:size=750, setpts=PTS-STARTPTS, chromakey=0x5ae52c:0.2:0[ckout];[bg][ckout]overlay=shortest=1:x=360[o]" -map [o] -map 1:a output.mp4
Trong đó:
- File video background là bg.mp4
- File video overlay: input.mp4
- Lặp video overlay: loop=-1 và overlay=shortest=1
- Xóa nền xanh: chromakey=0x5ae52c:0.2:0 (5ae52c là mã màu, 0.2 là độ nhạy màu, 0 là độ trong suốt)
Code FFmpeg chạy chữ từ bottom to top
ffmpeg -i bg.mp4 -vf drawtext="fontcolor=white:bordercolor=black:borderw=5:fontsize=100:fontfile=font_name.ttf:textfile=text.txt: x=(w-tw)/2:y=h-t*100" out.mp4
Trong đó:
- File video background là bg.mp4
- Update vị trí text theo thời gian: x=(w-tw)/2:y=h-t*100″
Bỏ qua nhấn y để ghi đè file FFmpeg
ffmpeg -y -i input.flac output.mp3
- Thêm -y sau ffmpeg