Чи є лише кілька стандартних частот кадрів відео?


11

Чи може сучасне цифрове відео позначати відео-файл будь-якою довільною частотою кадрів? Або широко підтримуються лише декілька конкретних кадрів? Під "сучасним" я маю на увазі програмні плеєри, такі як Quicktime, VLC, Roku, ігрові консолі тощо. Мені цікаво і те, що самі відеостандарти кажуть, що дозволяється частота кадрів, а потім те, що насправді працює на практиці.

Я розумію, що 24 кадрів в секунду, 25 кадрів в секунду, 30 кадрів в секунду, 50 кадрів в секунду і 60 кадрів в секунду - це широко підтримувані стандарти. HandBrake також пропонує 5, 10 та 15; це стандартні варіанти? Чи можу я використовувати будь-який номер FPS, який я хочу? А як щодо нецілих ставок, таких як 23,976 та 29,97; чи насправді вони по-різному ставляться до програмного забезпечення, ніж 24 та 30? Також я бачу посилання на "змінну частоту кадрів" у потоках H.264; це насправді працює, і якщо так, то для чого це використовується?

Моє конкретне питання - який найкращий спосіб - це кодувати 8-мм сканування плівки. Джерело - 16 кадрів в секунду, 8 мм плівковий стандарт. Зараз я подвоюю всі інші кадри, щоб довести його до 24 кадрів в секунду, що працює добре, але мені цікаво, чому я не можу просто позначити відео як 16 кадрів в секунду. FWIW Я створив файли H.264 mp4 з Handbrake при 15 кадрів в секунду і виявив, що вони відтворюються правильно лише у VLC. Mac Quicktime грав їх занадто швидко, ймовірно, 24 кадрів в секунду.

Відповіді:


11

Існує кілька "стандартних" частот кадрів, але їх стає так багато, що підтримка довільних частот кадрів простіше, ніж спеціально підтримка багатьох конкретних. Особливо це стосується програмних плеєрів, таких як VLC.

Все більше і більше підтримки існує для VARIABLE fps. (VFR, змінна частота кадрів). Ось де інтервал між кадрами в одному відео не є постійним. Багато форматів файлів для відеоконтейнерів (наприклад, Matroska ( .mkv) або MPEG-4 ( .mp4тісно пов'язані з Apple .mov)) навіть не зберігають FPS-номер, а швидше базу часу (наприклад, 1/30 секунди), а потім кожен кадр має часову позначку, кратну цій часовій базі. Так буває, що інтервал між кожним кадром є одним або невеликим цілим числом одиниць бази часу у відеокліпі CFR (постійної частоти кадрів).

Кадри охоронної камери з майже повторюваними кадрами будуть очевидним випадком використання для VFR. Тим більше, що його стискають спрощеним відео кодеком, який не використовує переваги тимчасової надмірності (з інтер (p і b) кадрами). (Грати з ffmpeg -vf mpdecimateвпустити ряд дублюючих кадрів. Використовується -vsync 2при виведенні в mp4, тому що з якоїсь - то причини це не за замовчуванням для цього мультиплексора, але це для мов.)

Ще один випадок - це сучасні смартфони. Наприклад, Moto G мого брата (2-й рід) записує відео VFR. Це знижує частоту кадрів, коли датчику потрібно більше світла. Частина результатів роботи медіаінфо на mp4, створеному програмним забезпеченням телефону, записана в приміщенні:

Bit rate                                 : 9 999 Kbps
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Rotation                                 : 90°
Frame rate mode                          : Variable
Frame rate                               : 16.587 fps
Minimum frame rate                       : 14.985 fps
Maximum frame rate                       : 30.030 fps

Відтворення одного відеофільму VFR не є складним. Програмне забезпечення просто готовий до відображення наступного кадру, спить, поки його не відображатимуть, потім прокидається і виводить його.

Все стає дещо складніше, якщо взяти до уваги той факт, що люди можуть бачити відеокадри лише тоді, коли їх відображає монітор. Монітори VFR існують, але вони все ще рідкісні. (google для g-sync freesync).

Зміна відображеного зображення під час його сканування на монітор призводить до некрасивого розриву відео (зазвичай це спостерігається під час гри з відключеною vsync). Це обмежує програвача до зміни відображеного зображення на 50 або 60 Гц. (CRT підтримують довільну частоту в режимі reffresh, в межах діапазону, але складно готувати режими з усіма правильними таймінгами, тому більшість людей просто використовували кілька фіксованих частот оновлення. А тепер у людей є LCD, які так чи інакше підтримують фіксовану частоту оновлення. До тих пір, поки монітори freesync все одно є більш поширеними. Я дуже чекаю цього :)

Тож із частотою кадрів відео, яка не є кратною або коефіцієнтом частоти оновлення монітора, деякі кадри відображатимуться для 3-х оновлень монітора, а деякі - 2, наприклад, навіть якщо відео має бути постійним 25 кадрів в секунду. (на моніторі 60 Гц).

Речі ускладнюються, коли ви хочете працювати з декількома кліпами і зникати між ними, або зображенням у картинці, або різними іншими ефектами. Набагато простіше писати програмне забезпечення для редагування відео, якщо ви можете припустити, що всі кліпи мають новий кадр одночасно. (Вони змушують вирівнювання кліпу оснащуватися цілими кадрами).

Ось чому NLE (наприклад, kdenlive або pitivi, щоб вибрати випадкові приклади безкоштовного програмного забезпечення), швидше за все, змушують вас встановити фіксовану FPS та скидати / дублювати кадри зі своїх кліпів, щоб вони відповідали частоті кадрів. Вибраний вами CFR може бути довільним, але він, як правило, повинен бути постійним для всього "проекту".

(Чи будь-які NLE повністю працюють з VFR-кліпами і виробляють VFR вихід у такому випадку?)

Отже, підсумовуючи, щойно ми матимемо монітори та операційні системи із змінною синхронізацією, єдине, що нас стримує - це редагування відео, я думаю. І мовлення, оскільки, очевидно, CFR теж велика справа для цього?

У випадку, якщо вам цікаво, 29.970 (фактично 30000/1001) та 23.976 (фактично 24000/1001, від телецинінгу) набридливі не цілі частоти кадрів є виною кольору NTSC. пошук 1.001 . Якби вони були готові ризикувати, коли декілька наборів програм не зможуть обробити додаткову частоту 0,1% для аудіопідсильника, світ не пошкодував би цієї дурниці. (Я думаю, я десь побачив ще одну статтю, яка зробила це звуком більше схожим на багато наборів, але вони не були б впевнені в ідеальному співзвученні. факти.)

Однак дратує частота кадрів - один із найменших гріхів мовлення. Це дійсно переплетення, що було основою якості відео на сучасних (усі пікселі, що запалюються одразу), і це не змінилося б. Я досі не розумію, чому переплетення зберігалося для HDTV. Чому 1080i60 коли-небудь визначали, замість того, щоб використовувати 720p60 для отримання тієї ж часової роздільної здатності для занять спортом та іншим? Це схоже на 1920x540p60, але з дурним вертикальним зміщенням між непарними і парними полями, що вимагає багато обчислень на кінці прийому, щоб це не виглядало жахливо.

редагувати:

Для вашого випадку я б абсолютно запропонував архівувати на нативної FPS. Не викидайте жодної інформації, скидаючи кадри. Не дублюйте кадри і не збільшуйте свої файли (або зробіть ваш кодер h.264 витрачати більше часу, помічаючи дублікати та виводить кадр, повний пропущених макроблок, що займає всього 20 байт на весь кадр).

У майбутньому, коли ми сподіваємося, що у всіх є дисплеї freesync, які можуть відтворювати будь-який кадр, ви захочете скасувати підкачку до 24 кадрів в секунду, щоб ваше відео відтворювалося більш плавно! Або якщо freesync якимось чином не ввімкнеться, або дисплей, який з’являється після РК-дисплеїв, є CFR, перетворення швидкості, мабуть, найкраще робити під час відтворення в будь-якому випадку. Це не так, як 24 кадрів в секунду навіть чудово грає на моніторі 60 Гц. (Я візуально не помічаю факту, що деякі кадри відображаються для 3 * 1/60, тоді як деякі відображаються для 2 * 1/60, але це правда).

Якщо у вас проблеми з Quicktime, тоді IDK. Можливо, переконайтесь, що Handbrake створює файли з правильним кадром, встановленим у бічній потоці h.264, а також контейнер. (Так, заголовки h.264, очевидно, можуть зберігати частоту кадрів, окремо від того, що каже контейнер. Дивіться документи для mkvmerge --fix-bitstream-timing-information. І спробуйте використовувати його --default-duration 16fpsдля створення файлу mkv. Потім MIX, що повертається до mp4, і побачить, чи це виправляє швидкість? ) Або, можливо, є спосіб зробити це в першу чергу інструментами mp4. Див. Наприклад: /ubuntu/370692/how-to-change-the-framerate-of-a-video-without-reencoding

Я можу гарантувати, що довільна частота кадрів mp4 є дійсною, і навіть змінна частота кадрів mp4 є дійсною. Якщо Quicktime грає неправильно, це може бути виною Quicktime. А може, помилка Handbrake в тому, що файл помилився. Зазвичай я просто використовую ffmpeg безпосередньо, тому що я ніндзя командного рядка.


2

Щоб відповісти на ваше запитання - так, ви можете загалом кодувати відеофайл у будь-якій частоті кадрів. (Хоча якесь програмне забезпечення може обмежити вас для спрощення програмного забезпечення.) Питання полягає в тому, чи підтримує ви обраний формат доставки, чи підтримуватиме його пристрій відтворення?

Якщо у вас є 8-мм плівка зі швидкістю 16 кадрів в секунду, я б кодував її на 16 кадрів в секунду, якби я знав, що пристрої відтворення, які я хотів би підтримати, могли б обробити її. Якщо ні, я, ймовірно, використовував би програмне забезпечення, яке підтримувало оптичний потік (іноді його називають оцінкою руху), щоб кодувати його на 24 кадрів в секунду, що, швидше за все, найближча частота кадрів, яка може бути підтримана кодуючим програмним забезпеченням, програмним забезпеченням для декодування та більшою частиною обладнання для відтворення.

Програмне забезпечення (або апаратне забезпечення), яке підтримує оптичний потік, генеруватиме між кадрами на основі руху об'єктів у вашому відео. Замість того, щоб повторювати кадр або навіть змішувати 2 кадри, він генерує новий кадр, який зазвичай досить близький до того, що було б насправді записано, якби ви записували на швидкості виходу кадру.


Я б кодував зі своєю частотою кадрів, щоб уникнути викидання будь-якої інформації або дублювання будь-якого кадру для створення додаткової роботи для кодека. Також у майбутньому ми сподіваємось, що у всіх є дисплеї freesync, які можуть відтворювати будь-який кадр. Якщо ні, перетворення швидкості, ймовірно, найкраще проводити під час відтворення, особливо якщо ми говоримо про архівні часові шкали.
Пітер Кордес

2

За історією 24 FPS походять з кіно (фільми). Фільм був у фотоплівці, і швидкість вибиралася для того, щоб зробити рухи плавними.

25 FPS надходять від частоти живлення в Європі, 50 Гц (50 FPS - з того самого джерела, але насправді вдвічі більше). Насправді телебачення в Європі було 50 кадрів в секунду, але на пів кадрів вони переплетені

30 FPS надходять від частоти живлення в США, 60 Гц (60 FPS - з того самого джерела, але насправді вдвічі більше). Насправді телебачення в США було 60 кадрів в секунду, але на пів кадрів вони переплетені

16 FPS не настільки широко розповсюджені, як стандарт для професійних цілей, тому, можливо, саме тому він не використовується в більшості сучасних програм. Більше того, такі FPS не будуть «згладжувати» досить швидкий рух. У мене є одна божевільна ідея, як можна зробити 16 кадрів в секунду, щоб краще відповідати 24. Потрібно отримати всі парні і непарні кадри і зробити щось середнє серед них :)


Дякую за допомогу, але це не відповідає на моє запитання. Мені відомо про джерела 24, 25, 50 та 60. Мене просять, чи очікується, що працюватимуть інші рамки.
Нельсон

1

Існують встановлені телевізійні та кіно стандарти відео, яким відповідає більшість відео. Комп'ютер часто може відображати відео з декількох кадрів, однак деякі телевізори можуть мати проблеми з частотою кадрів з непарними кулями, оскільки вони можуть використовувати більш спеціалізовану схему дисплея. Навіть на комп’ютері фактично відображена частота кадрів може не збігатися з частотою відеофайлу, залежно від підтримуваної частоти оновлення монітора.

Так, частота кадрів не цілої кількості відображається по-різному. Вони відомі як падіння кадру, і вони існують насамперед із застарілих причин. Під час відтворення кожен кадр так часто випадає (з часового коду) для того, щоб компенсувати різницю у часі, і кадри поширюються з відповідною швидкістю, щоб зберегти його гладким. Це більше стосується синхронізації матеріалів у застарілих форматах та запобігання проблемам синхронізації, які вже не є актуальними.

Ви можете використовувати нестандартну частоту кадрів, і вона повинна чудово відтворюватися на ПК, але вона не відповідатиме стандартному відео для таких речей, як Bluray, і може не відтворюватись на деяких телевізорах. (І навіть на тих, над якими він працює, він, швидше за все, здійснить пониження в режимі реального часу, щоб відповідати стандартній частоті кадрів, де, як випадання, зроблене заздалегідь, може призвести до кращої якості.)


@ user1118321 так, і дякую, що вказали, що це може бути більш зрозумілим.
AJ Henderson

-1

Ваше запитання не стосується загальних тарифів, а про те, яку ставку слід використовувати для оцифрування фільму. Відповідь: ви можете використовувати оригінальну швидкість, якщо це можливо, тому що ви хочете зберегти джерело в цифровій формі. Тоді ви можете конвертувати його в будь-яку частоту кадрів, необхідну для перегляду. За старих часів це зазвичай означало 24 кадрів в секунду для театральної презентації та 29,97 кадрів в секунду, переплетених для відео. Сьогодні ви можете зробити майже все, але вам потрібно мати хороше джерело, яке відповідає максимально чистому оригіналу.


Ні, моє питання стосувалося загальних ставок. І відповіли на це адекватно років тому.
Нельсон

-3

Ще кілька приміток. По-перше, 48 кадрів в секунду стають все популярнішими і поширенішими завдяки The Hobbit, а тепер підтримка YouTube для частоти кадрів. По-друге, 30 кадрів в секунду зазвичай насправді 29,97 кадрів в секунду, а 60 - зазвичай 59,94.


2
Насправді 30 не завжди означає 29,97. Іноді насправді це 30. Те саме стосується 24. 23.98, 24, 29.97, 30, 50, 59.94 та 60 - цілком дійсні, часто використовувані рамки. Ті, де у них є десяткові знаки, повинні бути сумісні з телерадіомовленням у різних країнах, але вони все ще чесні ігри на веб-сайтах. Деякі виробники відеокамер все-таки «брешуть» щодо своїх кадрів. Камера з позначкою 24p насправді може доставити 23,98, намагаючись пощадити споживача як головного болю від проблемних смуг, так і технічних деталей, що стоять за ним.
Джейсон Конрад

@JasonConrad Частота кадрів не завжди є округлими десятичними знаками, але для більшості споживчих камер вони є.
KC McLaughlin

@KCMcLaughlin - насправді, на прогресивних скануючих пристроях стає все більш імовірним відмовитись від рамки, що випадає, і просто перейти до цілих частот кадрів. 29.97 і 23.976 є суто спадщиною на даний момент і все більше замінюються чистими цілими частотами кадрів.
AJ Henderson

@KCMcLaughlin Color NTSC ніколи не був 29,97 кадрів в секунду. Було і залишається 30000/1001. Аналогічно, вміст 24p, телекінований на кольоровий NTSC, фактично буде 24000/1001. Крім того, мій цифровий фотоапарат (lumix) записує 30 кадрів в секунду, а не 30 / 1.001. Вимкнення / вимкнення буде десинхронізовано, якби я відтворив різну кількість кадрів на 48 крок зразків аудіо.
Пітер Кордес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.