sử dụng bộ lọc tỷ lệ sẽ làm điều đó, nhưng có thêm một chút cho nó.
ffmpeg -i input.mov -vf scale=720x406 output.mov
sẽ tạo một bộ phim với kích thước pixel yêu cầu, nhưng nếu bạn nhìn vào đầu ra, bạn sẽ thấy rằng nó thêm thông tin vào siêu dữ liệu để nó sẽ phát lại ở cùng tỷ lệ khung hình như ban đầu, bằng cách sử dụng các pixel không vuông. Vì vậy, nếu bạn muốn kéo dài phim một cách biến dạng thành tỷ lệ khung hình mới, bạn cần đặt thủ công tỷ lệ khung hình pixel, được gọi là SAR cho "Tỷ lệ khung hình mẫu", do đó, sử dụng pixel vuông:
ffmpeg -i input.mov -vf scale=720x406,setsar=1:1 output.mov
Ngoài ra, bạn có thể đặt tỷ lệ khung hình hiển thị thành bất cứ điều gì bạn muốn, do đó:
ffmpeg -i input.mov -vf scale=720x406,setdar=16:9 output.mov
Những gì tôi đang làm với lệnh -vf và x = y, z = một biểu thức theo sau là tạo ra một chuỗi các bộ lọc . Các bộ lọc có thể khá phức tạp, nhưng trong cách sử dụng đơn giản nhất, chúng có dạng effect=parameter,nexteffect=anotherparameter
và chúng được xử lý theo thứ tự bạn viết chúng.
Bạn có thể muốn đặt các lệnh bổ sung cho codec, v.v., ví dụ: -c:v libx264
để sử dụng bộ mã hóa mp4 x264 và một cái gì đó giống như -crf 20
đặt hệ số tốc độ không đổi thành 20 (thường là một sự thỏa hiệp khá tốt giữa kích thước và chất lượng). Vì vậy, một lệnh hoàn toàn hợp lý sẽ trông như sau:
ffmpeg -i input.mov -vf scale=720x406,setdar=16:9 -c:v libx264 -preset slow -profile:v main -crf 20 output.mov
slow
Cấu hình chính tốt cho khả năng tương thích thiết bị, cài đặt trước cho bộ mã hóa libx264 là sự cân bằng khá tốt về tốc độ và chất lượng, vì vậy đây là một công việc mã hóa web nói chung tốt. Bạn có thể làm cho nó nhanh hơn bằng cách sử dụng fast
hoặc veryfast
chậm hơn veryslow
và placebo
sẽ làm cho nó trở nên tốt hơn một chút so veryslow
với chi phí thời gian xử lý nhiều hơn (do đó là tên).
BTW Không sử dụng bản sao -c , có nghĩa là chỉ cần sao chép các video và âm thanh mà không làm bất cứ điều gì cho họ ở tất cả , vì vậy không có gì bạn làm về mặt quy mô, codec, bitrate vv sẽ có hiệu lực.