LINUX.ORG.RU

Хочу поредактировать видео h264. Насколько возможно, чем, как?

 , , , ,


2

2

Хочу редактировать h264, может быть в перспективе h265. Поредактировать вектора движения между кадрами, макроблоки, низкочастотные коэфициенты, влияющие на цвет/яркость картинки. Если картинку можно будет отскейлить или сместить - вообще замечательно, если просто отломать (заблюрить) отдельный макроблок - тоже хорошо.

По аналогии с редактированием jpeg, который вполне себе можно редактировать по границам MCU (8х8 кубики), можно отдельно править AC/DC коэфициенты и для которого есть даже готовые редакторы или конверторы jpeg -> txt -> jpeg.

Речь здесь идет именно о редактировании h264/h265, а не полном пережатии (распаковка - редактирование - сжатие), так что ffmpeg или Adobe Premiere идут сразу лесом.

Возможно кто-то знает и подскажет тулзы, которые были бы очень полезны в процессе изучения/редактирования потока, навроде https://www.elecard.com/products/video-analysis/streameye, показывающие битстрим, чтобы было сразу видно, где и какие данные, как их достать и как править. Они же будут полезны, когда я буду тестировать уже «отредактированный» поток.

Где-то на Stackoverflow был тред, где РУЧКАМИ сделали валидный битстрим h264, картинка вроде 32х32 пикселя, причем автор уложился где-то в 50-100 байт. Увы, с ходу найти не смог. Вот мне нужны инструменты или учебник по такой магии.



Последнее исправление: ruzisufaka (всего исправлений: 3)

Ответ на: комментарий от VenturiTube

и почему же?..

https://trac.ffmpeg.org/wiki/Encode/H.264

Это обычное редактирование видео, как это делают обычные приземленные человеки. Как это делают человеки с Adobe Premiere. А в треде вопрос про высшую магию.

ruzisufaka
() автор топика
Ответ на: комментарий от i-rinat

Редактировать для какой финальной цели? Делать «cursed gifs»?

Ну «проклятые гифки» делать достаточно просто, достаточно поубирать пару референсных кадров и начнется грофений. Ну или тупо побить видеопоток - декодер ругнется, но какой-то мусор в фреймбуфер выкинет.

Я же хочу делать это немного более осознанно, к примеру, заблюрить какую-то часть картинки (отдельные макроблоки) или по возможности изменить яркость всей сцены. Короч, я делаю видеоредактор, но не хочу декодировать весь поток. Хочется черной магии, уровня правки AC/DC-коэфициентов в jpeg.

ruzisufaka
() автор топика

Где-то на Stackoverflow был тред, где РУЧКАМИ сделали валидный битстрим h264, картинка вроде 32х32 пикселя, причем автор уложился где-то в 50-100 байт. Увы, с ходу найти не смог. Вот мне нужны инструменты или учебник по такой магии.

ruzisufaka
() автор топика
Ответ на: комментарий от ruzisufaka

Идея прикольная, но её практичность околонулевая. Поэтому и шансов на наличие готового инструмента практически нет. Видеоредактор из этой идеи не получится. К примеру, идея с заблюриванием разобьётся о сложность распространения информации в зависимые кадры. Проще сегмент перекодировать.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Проще сегмент перекодировать.

Неспортивно

К примеру, идея с заблюриванием разобьётся о сложность распространения информации в зависимые кадры

Наоборот - информация будет удалена, соседние кадры тоже не получат ничего. Размазав лицо на ключевом кадре, оно будет размазанным и далее.

ruzisufaka
() автор топика
Ответ на: комментарий от i-rinat

Инструменты — Си или Python. Учебник — спецификация H.264. Но только учти, что это муть на недели.

Ну, свой видеоредактор я пишу не первый год, так шта… Другое дело, что читать спецификацию - больно, особенно когда у тебя в файле одни байтики, а в спеке сказано, что должны быть другие. Потом, через пару месяцев прояснится, что спека не той версии, что в битстриме присутствует дополнительный контейнер, что… Но к тому времени я уже захочу снова полежать. И не вставать.

ruzisufaka
() автор топика
Ответ на: комментарий от ruzisufaka

Ну, свой видеоредактор я пишу не первый год, так шта… Другое дело, что читать спецификацию - больно, особенно когда у тебя в файле одни байтики, а в спеке сказано, что должны быть другие.

Не получится избежать чтения документации, если ты пытаешься лезть в битовый поток. Да и где уж там «больно». Всего 800 страниц. А если возьмёшь версию от 2003 года, то там всего лишь 280 страниц. Я не особо вникал, почему число страниц так выросло. В H.264 добавляли новые фичи, но там вроде бы все секции со временем раздулись. Возможно, добавили пояснений.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Не получится избежать чтения документации, если ты пытаешься лезть в битовый поток

Ну я ожидал, что можно было бы выучить базовые концепции кодирования потока, а уже потом извращаться с тем маленьким объемом данных, который мне потенциально интересен.

В принципе, чтобы разобраться с этим, я думаю нагенерить мелких видеофайликов вида 32х32 пикселей и поиграть с этим:

Большая часть этого - анализаторы, но надеюсь где-то там есть hex view. Ну или что-то, что на него наведет. А дальше можно в принципе делать по принципу «сделай как тут».

ruzisufaka
() автор топика
Ответ на: комментарий от ruzisufaka

Судя по тому, что это софт для разработчиков кодеков, программных и аппаратных, там обязательно должна быть возможность спуститься на уровень байтов и битов. Без этого будет тяжело отладить.

Забавно, что единственный открытый продукт в этом списке явно был изначально коммерческим. Слишком узкая ниша.

Немного обидно, что про такой довольно очевидный юзкейс как разработка кодеров-декодеров я вообще не подумал.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от ruzisufaka

Разгребал ссылки, наткнулся на упоминание книжки Iain E. Richardson, «The H.264 Advanced Video Compression Standard, 2nd Edition».

PDF-версия легко гуглится. По содержимому похоже на описание деталей устройства H.264 более понятным языком.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Спасибо, купил.

The H.264 Advanced Video Compression Standard. 2nd ed.
H.264. Передовой стандарт видеосжатия. Изд.2-е
!Год: 2010
Автор: Iain E. Richardson / Ричардсон И.
Жанр: Видеокодирование
Издательство: Wiley
ISBN: 978-0-470-51692-8
Язык: Английский
Формат: PDF
Качество: Изначально компьютерное (eBook)
Количество страниц: 346
ruzisufaka
() автор топика
Ответ на: комментарий от mike666

Так исходники ffmpeg и x264 же ж самый простой путь…

Исходники тебе не расскажут идею на высоком уровне, а с низкого уровня ты будешь понимать ее очень долго. Ну, по крайней мере я. Мне нужен мануал в картинках.

Алсо, я поставил практически весь софт, что по ссылкам выше и в альтернативах - во многих программах есть что-то похожее на hex editor. Но нельзя править байтики и битики. Печаль.

ruzisufaka
() автор топика