Можливе апаратне прискорення кодування h264?


12

Raspberry Pi зробить апаратне прискорене кодування h264 під час запису відео з дошки камери. Як я можу кодувати h264 (за допомогою апаратного прискорення), коли вихідні зображення не надходять безпосередньо з камери?

Чи є інструменти командного рядка, які підтримують це?

Якщо ні, то які API потрібно шукати, щоб зробити це можливим?


Що ви кодуєте та як зараз? - Ви перетворюєте відеофайли, відтворюєте їх із зображень та звуків тощо ...
Вільф

@Wilf Мене це взагалі цікавить, однак у мене є теперішня програма: кодування проміжку часу безпосередньо на відео. Я не можу використовувати raspivid, оскільки мені потрібні низькі частоти кадрів між 1/5 та 2 кадрів в секунду. Крім того, невмілий автоекспозиція переходить у коливання в умовах мого освітлення (слабке освітлення). Тому я хочу використовувати raspistill, але кодувати безпосередньо для відео, щоб результат не займав занадто багато місця (як JPEG). Як друге додаток, я хочу опублікувати кожен кадр в режимі реального часу, використовуючи Mathematica (це займе багато часу процесора), а потім надіслати їх для закодування в h264.
Szabolcs

1
@ Якщо у мене є часткове рішення, яке, на мою думку, має бути можливим для роботи: ідея - це щось на зразок raspiyuv -o - | rpi-encode-yuv(приблизно), де rpi-encode-yuvінструмент звідси . Розмір кадру в цьому інструменті жорстко закодований, тому його потрібно змінити на початку файлу C та перекомпілювати. На жаль, мені ще не вдалося отримати правильно вирівняний вихід, оскільки raspiyuv, схоже, не кодує розмір кадру у його вихід. Я отримую картину, що поступово змінюється, яка з часом перетворюється на сміття. Ще над цим працюю.
Szabolcs

Відповіді:


8

GStreamer входить до програми Raspbian і завдяки своєму плагіну OpenMAX він використовуватиме апаратні можливості кодування Raspberry Pi.

Дивіться це посилання для підручника щодо того, що ви шукаєте: https://www.raspberrypi.org/forums/viewtopic.php?t=72435

Якщо вас цікавить перекодування, я щойно опублікував відповідь на інше питання, яке може вас зацікавити: Яку швидкість я можу очікувати від апаратного кодування H264?


Дякую! Я не можу перевірити це зараз, але прийму заздалегідь на основі вашого підручника.
Szabolcs

1

Схоже, склавши ffmpeg самостійно, на RPi3B + ви можете отримати

РЕГУЛЮВАННЯ ВІДЕО ЗВ'ЯЗКОВОГО КОМПЛЕКСНОСТІ 30 FPS від 1920 X 1080 JPEG ПОСЛІДНОСТІ ЗОБРАЖЕННЯ - СУЧАСНІ ДЕТАЛІ ДВИГУВАННЯ І ІНТРАФРЕЙМУ - НАСТРОЙКИ ВИСОКОЇ ЯКОСТІ:

Програмне кодування H.264 (CPU): 2,6 FPS (в 11,5 рази повільніше, ніж у режимі реального часу)

Апаратне кодування H.264 (GPU): 6,3 FPS (у 4,8 рази повільніше, ніж у режимі реального часу)

КОДИРОВАНИЕ ВИСОКОЇ складності 30 FPS відео з 640 X 480 JPEG IMAGE ПОСЛІДОВНІСТЬ - ЗНАЧНЕ РУХУ ТА Внутрікадровий ДОКЛАДНО - найвища якість УСТАНОВКИ:

Програмне кодування H.264 (CPU): 18 FPS (в 1,7 рази повільніше, ніж у режимі реального часу)

Апаратне кодування H.264 (GPU): 38 FPS (в 1,3 рази швидше, ніж у реальному часі)

Сценарій, який допоможе досягти всього цього, знаходиться у форумі .

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