Lệnh ffmpeg nào sẽ chuyển đổi video cho iPad / iPhone / iPod?


24

Tôi hiện đang sử dụng một tệp bó mà (trong số những thứ khác) chạy dòng lệnh handbrakecli sau đây để chuyển đổi video:

HandBrakeCLI.exe -v0 --input "D:\input.mkv" --preset="Universal" --ipod-atom -t 1 --angle 1 --gain 0 --output="D:\output.mp4"

Điều này đã phục vụ tôi rất tốt trong nhiều năm, tạo ra một tệp video nhỏ hơn bản gốc (tốt khi bạn chỉ có thiết bị 16Gb), trông đủ tốt và hoạt động trên hầu hết mọi iPod, iPad và iPhone tôi đặt.

Tuy nhiên, theo thời gian, handbrakecli đang vật lộn để chuyển đổi ngày càng nhiều video đến mức tôi cần tìm một giải pháp thay thế. Nó không được giúp đỡ bởi thực tế là các bản ghi cung cấp hoàn toàn không có thông tin về lý do tại sao nó đã bị hỏng. Ví dụ, video này đã bị sập ở mức 71% thông qua chuyển đổi và đây là 4 dòng cuối cùng:

AC3 Passthru requested and input codec is not compatible for track 2, using AC3 encoder
x264 [info]: using SAR=9593/9600
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
x264 [info]: profile Constrained Baseline, level 3.0

Không hữu ích lắm.

Tôi đã xem xét sử dụng ffmpeg như một giải pháp thay thế, nhưng tất cả các ví dụ tôi đã thấy trên internet thực hiện một hoặc nhiều điều sau đây:

  1. Đừng làm việc (tùy chọn dòng lệnh không được công nhận) - phổ biến!
  2. Kết quả trong một tệp lớn hơn bản gốc - rất phổ biến!
  3. Làm biến dạng hình ảnh, đặc biệt là khi kích thước video không mong muốn được chuyển đổi (ví dụ: PAL không phải màn hình rộng)
  4. Xóa âm thanh
  5. Kết quả là video mà iPhone, iPod hoặc iPad sẽ không phát

Có một dòng lệnh ffmepg đa năng phù hợp sẽ làm cho bất kỳ video nào chạy vui vẻ trên tất cả các thiết bị của Apple cộng với việc giảm kích thước tệp không?

Điểm thưởng nếu nó sẽ thu nhỏ (nhưng không làm biến dạng) bất kỳ video nào trên 720p.


Lần cuối bạn nâng cấp handbrakecli là khi nào?
Gene

Khá thường xuyên với hy vọng lỗi bị lỗi được khắc phục. Tôi hiện đang chạy 0.10.2 (2015060900) - MinGW x86_64.
Richard

Tôi đã có một video mp4 đã từ chối hoạt động trên iOS và đây là lệnh ngắn nhất tôi có thể gợi ý rằng nó đã sửa nó: ffmpeg -i broken_video.mp4 -pix_fmt yuv420p work_video.mp4
Bemmu

Câu trả lời:


30

Đây là của tôi về nó. Tôi sẽ lấy iPhone 4 trở lên (bao gồm tất cả iPad) làm mục tiêu: H.264 Cấu hình chính, cấp 3.1

ffmpeg -i input.mp4 -vcodec libx264 -profile:v main -level 3.1 -preset medium -crf 23 -x264-params ref=4 -acodec copy -movflags +faststart output.mp4

Các giá trị bạn có thể tự do thay đổi:

  • -crf 23: Cài đặt chất lượng không đổi. Giá trị cao hơn = chất lượng kém hơn, tệp nhỏ hơn. Thấp hơn = chất lượng tốt hơn, tập tin lớn hơn. Giá trị lành mạnh là [18 - 24]
  • -preset medium: Nếu điều này quá chậm đối với bạn, hãy sử dụng cài đặt trước nhanh hơn. Nếu bạn có kiên nhẫn cho nó, hãy sử dụng một cái chậm hơn. Xem ở đây để biết thêm thông tin.
  • -acodec copy: Cố gắng sao chép đoạn âm thanh vào thùng chứa MP4. Nếu không thể sao chép, bạn sẽ phải mã hóa lại thành AAC / MP3 / AC3 ​​... ví dụ:-acodec libmp3lame

Nếu video của bạn lớn hơn 720p, hãy thêm đoạn sau vào sau:

-vf "scale=-2:720:flags=lanczos"

Điều này sẽ thu nhỏ video của bạn xuống 720p và giữ tỷ lệ khung hình. Thuật toán chia tỷ lệ được sử dụng sẽ là lanczos vì nó tốt hơn nhiều so với mặc định.


3
Bạn có thể sử dụng -vf "scale=-2:720:flags=lanczos"thay thế. Việc thêm -movflags +faststartđược khuyến nghị nếu tệp sẽ được xem qua tải xuống liên tục, chẳng hạn như trong trình duyệt (và nếu không tùy chọn chắc chắn không bị tổn thương).
llogan

Bản dựng Zeranoe tôi đang sử dụng không hỗ trợ x264-params. Tự mình xây dựng nó, có cách nào để khắc phục vấn đề này không?
Richard

Tôi sử dụng Zeranoe xây dựng bản thân và -x264-paramshoạt động tốt. Bạn có chắc là bạn không bỏ lỡ điều gì không? Tùy chọn này chủ yếu là an toàn để tránh có nhiều hơn 4 khung tham chiếu có thể không được xử lý bởi bộ giải mã cũ.
Ely

-acodec libmp3lamekhông làm việc cho tôi. Để bật âm thanh trên iPad Mini, tôi đã xây dựng lại ffmpegvới nonfreebiến thể và được sử dụng libfdk_aacmã hóa.
Vitaly S.

0

Điều này là cơ bản nhưng nó hoạt động ngay lập tức với tôi trên iPad 3

ffmpeg -i inputfile outputfile.m4v
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.