Яка команда ffmpeg перетворила б відео для iPad / iPhone / iPod?


24

Зараз я використовую пакетний файл, який (серед іншого) виконує наступний командний рядок handbrakecli для перетворення відео:

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

Це служило мені добре протягом багатьох років, створюючи відеофайл, який менше, ніж оригінал (добре, коли у вас є лише 16 Гбіт пристроїв), виглядає досить добре і працює майже на будь-якому iPod, iPad та iPhone, на який я його надягаю.

Однак з часом handbrakecli з усіх сил намагається перетворити все більше і більше відео на те, що мені потрібно шукати альтернативу. Не допомагає той факт, що журнали не дають абсолютно ніякої інформації, чому він вийшов з ладу. Наприклад, це відео завершилось на 71% через конверсію, і це останні 4 рядки:

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

Не дуже корисно.

Я розглядав можливість використання ffmpeg як альтернативу, але всі приклади, які я бачив в Інтернеті, роблять одне чи більше з наступного:

  1. Не працює (параметри командного рядка не розпізнаються) - звичайне!
  2. Результат у файлі, який перевищує оригінал - дуже поширений!
  3. Спотворюйте зображення, особливо коли конвертується несподіваний розмір відео (наприклад, неширокий PAL)
  4. Видаліть аудіо
  5. Результатом є відео, яке iPhone, iPod або iPad не відтворюватимуть

Чи є гідний універсальний командний рядок ffmepg, який зробить будь-яке відео щасливим на всіх пристроях Apple плюс доможеться зменшити розмір файлу?

Бонусні бали, якщо це зменшить (але не спотворить) будь-яке відео понад 720p.


Коли в останній раз ви модернізували handbrakecli?
Гена

Досить часто, сподіваючись, виправлена ​​помилка. Зараз я працюю 0.10.2 (2015060900) - MinGW x86_64.
Річард

У мене був mp4 відео, відмовилися працювати на IOS, і це була найкоротша команда , яку я міг би викликати в уяві , що встановив його: FFmpeg -i broken_video.mp4 -pix_fmt yuv420p working_video.mp4
Bemmu

Відповіді:


30

Ось мій погляд на це. Я візьму iPhone 4 або новіший (включаючи всі iPad) як ціль: H.264 Основний профіль, рівень 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

Значення, які ви можете вільно змінювати:

  • -crf 23: Постійна настройка якості. Вище значення = менша якість, менший файл. Нижча = краща якість, більший файл. Зрозумілі значення [18 - 24]
  • -preset medium: Якщо це занадто повільно для вас, скористайтеся швидшим налаштуванням. Якщо у вас є терпіння, використовуйте повільніше. Дивіться тут для отримання додаткової інформації.
  • -acodec copy: Спробує скопіювати аудіозапис у контейнер MP4. Якщо його неможливо скопіювати, вам доведеться перекодувати його на AAC / MP3 / AC3 ​​... наприклад-acodec libmp3lame

Якщо ваше відео більше 720p, додайте наступне після введення:

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

Це зменшить ваше відео до 720p та збереже співвідношення сторін. Використовуваний алгоритм масштабування буде lanczos, оскільки він набагато кращий за типовим.


3
Ви можете використовувати -vf "scale=-2:720:flags=lanczos"замість цього. Додавання -movflags +faststartрекомендується, якщо файл буде переглянуто за допомогою прогресивного завантаження, наприклад, у браузері (а якщо ні, то варіант точно не зашкодить).
llogan

Збірка Zeranoe, яку я використовую, не підтримує x264-params. Якщо не будувати її, чи є спосіб подолати цю проблему?
Річард

Я використовую Zeranoe build сам і -x264-paramsчудово працює. Ви впевнені, що щось не пропустили? Варіант - це головним чином безпека, щоб уникнути наявності більше 4-х кадрів, які можуть не оброблятися старішим декодером.
Елі

-acodec libmp3lameне працює для мене. Щоб включити звук на моєму IPad Mini I перебудований ffmpegз nonfreeваріантом і використовували libfdk_aacзакодовані.
Віталій С.

0

Це є основним, але він працював для мене відразу на iPad 3

ffmpeg -i inputfile outputfile.m4v
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.