Nếu bạn mới chuyển sang Linux, có một điều khá thú vị là bạn không nhất thiết phải cài ứng dụng giao diện để chuyển đổi video.
Linux có một công cụ cực kỳ mạnh tên là FFmpeg. Nó có thể chuyển đổi định dạng, giảm độ phân giải, giảm FPS, nén dung lượng, cắt video, tách âm thanh, ghép video... hoàn toàn bằng dòng lệnh.
Điểm hay là FFmpeg không chỉ dành cho Debian. Nó có thể sử dụng trên hầu hết các bản phân phối Linux phổ biến.
1. FFmpeg là gì?
FFmpeg là một bộ công cụ xử lý multimedia mã nguồn mở.
Nó có thể làm việc với:
- MP4
- MKV
- AVI
- MOV
- WebM
- MP3
- AAC
- FLAC
- H.264
- H.265/HEVC
- VP9
- AV1
- và rất nhiều định dạng khác.
Ngoài Linux, FFmpeg còn có phiên bản cho Windows và macOS.
2. Cài FFmpeg
Debian / Ubuntu / Linux Mint
Debian, Ubuntu và Linux Mint có thể cài bằng:
sudo apt update
sudo apt install ffmpeg
Fedora
sudo dnf install ffmpeg
Arch Linux
sudo pacman -S ffmpeg
Sau khi cài xong, kiểm tra:
ffmpeg -version
Nếu hiện thông tin phiên bản FFmpeg là cài thành công.
3. Xem thông tin video
FFmpeg có một công cụ đi kèm tên là ffprobe.
Ví dụ:
ffprobe "video.mp4"
Nếu chỉ muốn xem những thông tin quan trọng:
ffprobe -v error -select_streams v:0 \
-show_entries stream=codec_name,profile,width,height,bit_rate,avg_frame_rate \
-of default=noprint_wrappers=1 "video.mp4"
Ví dụ kết quả:
codec_name=h264
profile=Main
width=3840
height=2160
avg_frame_rate=60/1
bit_rate=51531892
Điều này có nghĩa video là:
- H.264
- 3840×2160
- 60 FPS
- bitrate khoảng 51,5 Mbps
Đây là cách rất nhanh để biết tại sao một video có thể phát nặng trên máy tính cũ.
4. Chuyển video 4K xuống 1080p
Ví dụ có một video:
video.mp4
và muốn chuyển thành 1920×1080:
ffmpeg -i "video.mp4" \
-vf "scale=1920:1080" \
-c:v libx264 -crf 20 -preset medium \
-c:a aac -b:a 192k \
"video-1080p.mp4"
FFmpeg sẽ giữ nguyên file gốc và tạo ra một file mới.
5. Chuyển 4K 60 FPS xuống 1080p 30 FPS
Đây là trường hợp rất hữu ích nếu máy tính không đủ mạnh để phát video 4K60.
ffmpeg -i "video.mp4" \
-vf "scale=1920:1080,fps=30" \
-c:v libx264 -crf 20 -preset medium \
-c:a aac -b:a 192k \
"video-1080p30.mp4"
Ví dụ với một máy tính cũ:
3840×2160 60 FPS
↓
1920×1080 30 FPS
Video mới sẽ nhẹ hơn đáng kể và dễ phát hơn.
6. CRF là gì?
-crf quyết định chất lượng video khi mã hóa bằng H.264.
Ví dụ:
-crf 18
Chất lượng rất cao, file lớn.
-crf 20
Chất lượng cao, phù hợp sử dụng thông thường.
-crf 23
Cân bằng giữa chất lượng và dung lượng.
-crf 28
File nhỏ hơn nhưng chất lượng giảm rõ hơn.
Thông thường có thể bắt đầu với:
CRF 18–20 → ưu tiên chất lượng
CRF 21–23 → cân bằng
CRF 24–28 → ưu tiên dung lượng
Không có một bitrate cố định nào phù hợp cho mọi video; CRF cho phép FFmpeg tự điều chỉnh bitrate theo độ phức tạp của từng cảnh.
7. preset là gì?
Ví dụ:
-preset medium
Preset quyết định tốc độ mã hóa và hiệu quả nén.
Có thể hình dung:
ultrafast
superfast
veryfast
faster
fast
medium
slow
slower
veryslow
Preset càng nhanh thì encode càng nhanh nhưng thường cần bitrate lớn hơn để đạt cùng chất lượng.
Preset càng chậm thì encode lâu hơn nhưng nén hiệu quả hơn.
Nếu máy tính cũ như i7-2600, có thể dùng:
-preset fast
để giảm thời gian chờ.
Nếu không vội:
-preset medium
là lựa chọn cân bằng.
8. Chỉ đổi định dạng mà không mã hóa lại
Đây là một mẹo cực kỳ hữu ích.
Nếu video và âm thanh đã tương thích với container mới, có thể chỉ đổi container mà không encode lại:
ffmpeg -i "video.mkv" -c copy "video.mp4"
Cách này rất nhanh vì FFmpeg không mã hóa lại video.
Nó có thể hoàn thành trong vài giây hoặc vài phút tùy kích thước file và tốc độ ổ đĩa.
Tuy nhiên, không phải mọi video MKV đều có thể chuyển sang MP4 bằng -c copy.
9. Giảm dung lượng video
Ví dụ video 1080p đang có dung lượng quá lớn:
ffmpeg -i "video.mp4" \
-c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 128k \
"video-nho.mp4"
Độ phân giải vẫn giữ nguyên, nhưng video được nén lại.
10. Chuyển một đoạn video
Ví dụ muốn lấy từ phút 1 đến phút 3:
ffmpeg -ss 00:01:00 -i "video.mp4" \
-t 00:02:00 \
-c copy "doan-video.mp4"
Trong ví dụ này:
- bắt đầu ở phút 1
- lấy 2 phút
- không encode lại
Nên thao tác rất nhanh.
11. Tách âm thanh khỏi video
Ví dụ lấy âm thanh MP3:
ffmpeg -i "video.mp4" \
-vn -c:a libmp3lame -b:a 192k \
"audio.mp3"
Hoặc nếu muốn lấy nguyên luồng âm thanh mà không mã hóa lại:
ffmpeg -i "video.mp4" -vn -c:a copy "audio.m4a"
12. Đổi video thành GIF
Ví dụ:
ffmpeg -i "video.mp4" \
-vf "fps=10,scale=640:-1" \
"video.gif"
GIF sẽ có chiều rộng 640 pixel và giữ tỷ lệ hình ảnh.
13. Làm hàng loạt nhiều video
Đây là một trong những điểm mạnh của Linux.
Ví dụ muốn chuyển toàn bộ MP4 trong thư mục hiện tại thành 1080p:
for f in *.mp4; do
ffmpeg -i "$f" \
-vf "scale=1920:1080" \
-c:v libx264 -crf 20 -preset medium \
-c:a aac -b:a 192k \
"${f%.mp4}-1080p.mp4"
done
Không cần mở từng file.
FFmpeg sẽ lần lượt xử lý tất cả video.
14. Với máy tính cũ thì nên làm thế nào?
Ví dụ máy dùng:
Intel Core i7-2600
RAM 12 GB
Intel HD Graphics 2000
Nếu gặp video 4K 60 FPS, không nhất thiết phải cố phát nguyên bản.
Có thể tạo một bản nhẹ hơn:
ffmpeg -i "video.mp4" \
-vf "scale=1920:1080,fps=30" \
-c:v libx264 -crf 20 -preset fast \
-c:a aac -b:a 192k \
"video-1080p30.mp4"
Sau đó giữ nguyên video 4K làm bản gốc và dùng bản 1080p để xem trên máy cũ.
15. FFmpeg có dùng được trên mọi Linux không?
Gần như có.
FFmpeg không phải công cụ riêng của Debian.
Có thể sử dụng trên:
- Debian
- Ubuntu
- Linux Mint
- Linux Mint Debian Edition
- Fedora
- Arch Linux
- openSUSE
- Manjaro
- Pop!_OS
- và nhiều bản Linux khác.
Điểm khác nhau chủ yếu là cách cài đặt.
Ví dụ:
Debian/Ubuntu:
sudo apt install ffmpeg
Fedora:
sudo dnf install ffmpeg
Arch:
sudo pacman -S ffmpeg
Còn các lệnh ffmpeg ... sau khi cài đặt thì nhìn chung giống nhau.
16. FFmpeg có thay thế hoàn toàn ứng dụng giao diện không?
Không nhất thiết.
FFmpeg rất mạnh nhưng chủ yếu sử dụng bằng dòng lệnh. Nếu cần chỉnh nhiều tùy chọn bằng giao diện, các ứng dụng như HandBrake sẽ dễ sử dụng hơn.
Có thể xem như:
HandBrake
↓
Dễ dùng, có giao diện
FFmpeg
↓
Mạnh, linh hoạt, tự động hóa tốt
Với người dùng Linux, biết một số lệnh FFmpeg cơ bản là rất đáng giá vì có thể xử lý video nhanh mà không cần cài thêm một ứng dụng giao diện cho từng nhu cầu.
Một số lệnh nên nhớ
Xem thông tin video
ffprobe "video.mp4"
4K → 1080p
ffmpeg -i "video.mp4" -vf "scale=1920:1080" \
-c:v libx264 -crf 20 -c:a aac "1080p.mp4"
4K60 → 1080p30
ffmpeg -i "video.mp4" -vf "scale=1920:1080,fps=30" \
-c:v libx264 -crf 20 -c:a aac "1080p30.mp4"
Đổi container không encode lại
ffmpeg -i "video.mkv" -c copy "video.mp4"
Cắt video nhanh
ffmpeg -ss 00:01:00 -i "video.mp4" -t 00:02:00 \
-c copy "doan-video.mp4"
Kết luận
FFmpeg là công cụ xử lý video dùng chung trên Linux, không riêng Debian.
Với Linux, bạn hoàn toàn có thể:
mở Terminal → nhập một lệnh → để máy tự xử lý video.
Đặc biệt khi cần xử lý nhiều video cùng lúc, FFmpeg còn mạnh hơn rất nhiều so với việc mở từng video bằng một ứng dụng giao diện.