FFMPEG là một giải pháp hoàn chỉnh, đa nền tảng để ghi, chuyển đổi và phát trực tuyến âm thanh và video.
FFMPEG sử dụng giao diện dòng lệnh (CLI)
Trang chủ chính thức: https://ffmpeg.org
Tải xuống: https://www.ffmpeg.org/download.html
Phải đọc qua bằng mọi giá
ffpmeg -h
ffmpeg -i video.mp4
ffmpeg -formats
Ví dụ chuyển đổi file video.mkv sang video.mp4
ffmpeg -i input.mkv -codec copy -c:a aac output.mp4
ffmpeg -i video.mkv -codec copy video.mp4ffmpeg -i video.mkv video.mp4
Khuyên dùng cái đầu
ffmpeg -i video.mp4 -vn -ab 320 audio.mp3
ffmpeg -i input.mp4 -filter:v scale=640:480 -c:a copy output.mp4
ffmpeg -i input.mp4 -s 640x480 -c:a copy output.mp4
ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4
ffmpeg -i input.mp3 -ab 128 output.mp3
ffmpeg -i input.mp4 -an output.mp4
ffmpeg -i input.mp4 -vn output.mp3
ffmpeg -i input.mp4 -r 1 -f image2 img-%3d.png
image-%2d.png
– Tên file output. Trường hợp này các file output sẽ có tên: img-001.png, img-002.png, img-003.png,...Thay đổi tỷ lệ khung hình sang 16:9
ffmpeg -i input.mp4 -aspect 16:9 output.mp4
Convert một phần cụ thể của video
Đôi khi, bạn có thể muốn convert chỉ một phần cụ thể của video sang định dạng khác. Ví dụ, lệnh sau sẽ convert 50 giây đầu tiên của file video.mp4 định dạng video.avi.
ffmpeg -i input.mp4 -t 50 output.avi
Tham số -t 50 có nghĩa là lấy 50 giây, bạn cũng có thể truyền vào thời gian với format hh.mm.ss
ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4
Bạn muốn trim video với thời gian bắt đầu là phút thứ 1, thời lượng là 60 giây
ffmpeg -i input.mp4 -ss 00:01:00 -codec copy -t 60 output.mp4
Tương tự với file audio
ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp3
Một số website chỉ cho phép upload video với thời lượng nhất định, bạn có thể chia nó thành nhiều phần như sau:
ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4
Ở đây, -t 00:00:30 nghĩa là part 1 của video sẽ kéo dài 30 giây. -ss 00:00:30 là thời gian bwats đầu cho phần tiếp theo. Điều đó có nghĩa là part 2 sẽ bắt đầu từ giây thứ 30 và sẽ tiếp tục cho đến hết video.
FFmpeg cũng có thể nối nhiều video thành một.
Đầu tiên, chúng ta sẽ tạo file video.txt với nội dung:
file 'part1.mp4'
file 'part2.mp4'
Trong đó part1.mp4 và part2.mp4 là đường dẫn tới file muốn nối. Sau đó nối video bằng command:
ffmpeg -f concat -i video.txt -c copy output.mp4
Tương tự ta cũng có thể làm với audio.
Chúng ta có file sub với nội dung như sau, tên file subtitle.srt:
1
00:00:00,498 --> 00:00:02,827
- Here's what I love most
about food and diet.
2
00:00:02,827 --> 00:00:06,383
We all eat several times a day,
and we're totally in charge
3
00:00:06,383 --> 00:00:09,427
of what goes on our plate
and what stays off.
Sử dụng command sau để thêm sub cho video:
fmpeg -vf subtitles=subtitle.srt output.mp4
ffplay video.mp4
Xem file audio
ffplay audio.mp3
FFmpeg cho phép bạn thay đổi tốc độ phát video, ví dụ để tăng tốc độ phát:
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4
Giảm tốc độ phát
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4
Bạn có thể live stream một video, ví dụ mình live stream trên youtube
ffmpeg -re -i output.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/{stream_key}