Не зовсім. Причина, що у FFmpeg є кілька кодеків ProRes, полягає в тому, що вони всі змагаються. Можливо, в якийсь момент libavformat
технічні працівники почнуть видаляти деякі альтернативи.
Ця альтернатива вашій даній команді працює тут на моєму Mac, на якому встановлені офіційні кодеки Apple ProRes:
Я додав -pix_fmt yuva444p10le
параметр, який повідомляє кодеку, що ми хочемо вивести 4: 4: 4: 4. Якщо вхід не має альфа-каналу, він натомість дасть вихід 4: 4: 4.
Я додав -profile:v 4444
варіант, який, здається, є нещодавним доповненням до кодеку. Якщо це не робити, ви отримаєте ProRes 422, незважаючи на опцію формату пікселів 4: 4: 4: 4.
Я видалив qscale
параметр, тому що він дозволяє prores_ks
кодеку порушувати обмеження, визначені в специфікації ProRes .
ProRes - кодек на основі профілю, що означає, що при виборі одного з профілів він робить фіксовану кількість стиснення, визначену в специфікації. Якщо ви хочете інший рівень стиснення, вам слід вибрати інший профіль, а не змінювати налаштування якості.
prores_ks
Кодек дозволяє змінювати цілі бітрейт або рівня якості залежать від профілю, навіть якщо це означає , що результуючий файл порушує специфікацію. Можливо, є ідеально сумісні декодери ProRes, які відмовляються приймати створений вами файл. Це, швидше за все, з апаратними декодерами, оскільки вони обов'язково обмежені ресурсами. Якщо ви робите все своє декодування в програмному забезпеченні - наприклад, QuickTime Player - ви, ймовірно, можете порушити специфікацію таким чином, якщо ваш ПК досить швидкий, щоб впоратися з більш високими швидкостями передачі даних, які можуть призвести до цього.
Вам потрібно лише в тому -s
випадку, якщо ви змінюєте масштаби вхідних кадрів. Якщо ви є, мені цікаво, чому ви в першу чергу використовуєте формати типу EXR та ProRes 4444? OpenEXR зазвичай використовується там, де вам потрібні зображення без втрат, хоча він має низький рівень втрат. ProRes 4444 майже без втрат. Зміна масштабів вхідних кадрів по суті є втратою.
Якщо він повинен добре виглядати на моніторі ПК у режимі відтворення в режимі реального часу, ви, ймовірно, зможете обмінятися високою швидкістю передачі даних H.264. Для 540p, я думаю, що 10 Мбіт / с або близько того буде достатньо, щоб дати вихід невідрізний від ProRes 4444, який працює на швидкості приблизно 67 Мбіт / с при 540p.
Якщо користувачі відео призупинять це відео та вивчають його кадр за кадром, H.264 - це погана ідея, але це так, як змінити рамки введення. Принаймні, ви не повинні зменшувати масштаб нижче, ніж дозвіл монітора. Отже, якщо ваш джерело EXR дає масивні 4K кадри, є хороший аргумент для того, щоб змінити, скажімо, 1440 × 900 для даного монітора, доки користувачі потім не хочуть мати можливість збільшувати масштаб.
Зверніть увагу на зміну -f mov
формату контейнера QuickTime ( ). Це звичайний контейнер для файлів ProRes.
Я не бачу сенсу -vendor ap10
, тому я її зняв. Знову ж таки, ProRes - це ProRes. Для роботи його не потрібно позначати як "від Apple".
Я видалив, -probesize 5000000
оскільки не бачу, що вона надає значення в цьому випадку.
Я, мабуть, повинен переробити тести ProRes, оскільки, мабуть, змінилися кодеки ProRes, ffmpeg
оскільки я це написав.