Nếu bạn thích dòng lệnh, bạn có thể sử dụng ffmpeg
(hoặc handbrake-cli
).
MP4
Giả sử bạn đang sử dụng phiên bản gần đây của ffmpeg
:
ffmpeg -i input -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k \
-movflags +faststart -vf scale=-2:720,format=yuv420p output.mp4
-crf
: Phẩm chất. Phạm vi là logarit 0 (lossless) đến 51 (chất lượng kém nhất). Mặc định là 23. Phạm vi lành mạnh chủ quan là ~ 18-28 hoặc hơn. Sử dụng giá trị cao nhất mà vẫn cung cấp cho bạn một chất lượng chấp nhận được. Nếu bạn đang mã hóa lại các đầu vào lớn không chính thức để tải lên YouTube hoặc tương tự thì hãy thử giá trị 17 hoặc 18 vì các dịch vụ video này sẽ mã hóa lại bằng mọi cách.
-preset
: Tốc độ mã hóa. Một cài đặt trước chậm hơn cung cấp nén tốt hơn (chất lượng trên mỗi kích thước tệp) nhưng chậm hơn. Sử dụng tốc độ chậm nhất mà bạn có kiên nhẫn: cực nhanh, cực nhanh, rất nhanh, nhanh, nhanh, trung bình (mặc định), chậm, chậm, rất chậm.
-movflags +faststart
: Cho phép video phát lại trước khi nó được tải xuống hoàn toàn trong trường hợp xem tải xuống liên tục. Hữu ích nếu bạn đang lưu trữ video, nếu không thì quá tải nếu tải lên một dịch vụ video như YouTube.
-vf scale=-2:720,format=yuv420p
: Một filtergraph sử dụng quy mô và định dạng bộ lọc video. Tỷ lệ chiều cao tới 720 pixel và tự động chọn chiều rộng sẽ giữ nguyên khía cạnh và sau đó đảm bảo định dạng pixel tương thích với người chơi câm.
-b:a 128k
: Tốc độ âm thanh. Nếu bạn ffmpeg
đã lỗi thời thì bạn sẽ cần thêm -strict experimental
để sử dụng -c:a aac
.
PHIM
Vì các tệp MOV và MP4 của bạn có thể chứa cùng định dạng video và âm thanh, bạn có thể mã hóa MP4 và tạo MOV bằng cách trộn lại (với chế độ sao chép luồng ) thay vì mã hóa lại:
ffmpeg -i input.mp4 -codec copy output.mov
WMV
FFmpeg chỉ hỗ trợ WMV 7 và 8. Tôi không biết về bộ mã hóa nguồn mở cho phiên bản 9.
$ ffmpeg -encoders | grep -i windows
[...]
V..... = Video
A..... = Audio
------
V..... wmv1 Windows Media Video 7
V..... wmv2 Windows Media Video 8
A..... wmav1 Windows Media Audio 1
A..... wmav2 Windows Media Audio 2
Vì tôi không quen thuộc với các bộ mã hóa này, tôi chỉ có thể đưa ra một ví dụ chưa được kiểm tra:
ffmpeg -i input -c:v wmv2 -b:v 1024k -c:a wmav2 -b:a 192k output.wmv
Bắt ffmpeg
Bạn có thể tải xuống bản dựng ffmpeg của Linux hoặc làm theo hướng dẫn biên dịch ffmpeg từng bước để tùy chỉnh bản dựng của bạn.
Sử dụng bash "for loop" để thực hiện mã hóa hàng loạt
Để mã hóa tất cả các video trong một thư mục:
$ mkdir encoded
$ for f in *.avi; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 128k -movflags +faststart -vf scale=-2:720,format=yuv420p \
"encoded/${f%.avi}.mp4"; done
Cũng thấy