LINUX.ORG.RU

Целесообразность разработка собственного кодека для ffmpeg

 


0

1

Есть типичная и хорошо известная проблема - обеспечить взаимодействие различных систем. Создать один формат на все времена - утопия. Более того, даже в процессе разработки новой версии системы формат может измениться и когда у тебя уже есть тесты отказаться от старых форматов не всегда просто. В результате имеем кучу форматов. В ходе размышлений как все это дело упростить пришел к идее которая в том же ffmpeg и иже с ним называется контейнеры и кодеки, планирую сделать что-то вроде этого. Но потом возникла мысль - у меня данные все равно нужно визуализировать и прокручивать по времени, чтобы смотреть как изменилось состояние системы и возникла мысль, а что если сделать свой кодек для того же ffmpeg который данные будет рендерить в картинку? Тогда данные можно будет воспроизводить в любом проигрывателе (при установке кодека, конечно), что с точки зрения заказчика будет несомненным плюсом. Плюс с помощью кодеков я планирую решать проблему разных форматов и версий форматов.

Главный вопрос - насколько это глупая идея? Может быть проще просто сделать свой упрощенный adhoc вариант и не связываться с чужим кодом?

Уточняющие вопросы:

  1. сложно ли добавить кодек к ffmpeg? В первую очередь интересует трудоемкость по времени, абстрактно - навыков разобраться и реализовать у меня хватит, но если там просто много разного бойлер плейта, то тратить на это время я бы не хотел, тогда лучше adhoc вариант.
  2. какой контейнер из существующих лучше использовать? я смотрю на matroska, но это просто выбор пальцем в небо
  3. сложно ли добавить свой контейнер? хотя надеюсь что это лишнее
★★

Последнее исправление: yetanother (всего исправлений: 2)
Ответ на: комментарий от max_lapshin

Сначала разберись в принципиальной разнице между h264 и matroska, потом будет понятнее.

Разницу между кодеком и контейнером я понимаю. Именно это меня и привлекло. Мне как раз и нужно иметь возможность одну и ту же информацию по сути хранить в разных форматах, которые ориентированы на разные задачи. Чтобы я мог одну и ту же информацию преобразовать в формат удобный для передачи по тонкому каналу с допустимым уровнем потери качества и в то же время ее же передать при необходимости по толстому каналу без потерь. А также в архивных целях хранить с максимальным сжатием и без потерь. И еще возможно для целей редактирования нужен будет формат. Все это в одном формате не реализовать, естественно. Да и виды/типы информации постоянно добавляются/удаляются. В общем аналогию я увидел у медиафреймворков, в частности у ffmpeg. Плюс у меня есть задача визуализации этой информации. Отсюда вопрос и возник - возможно стоит сделать мюксер/демюксер + кодек, которые будут из контейнера извлекать данные в моем формате и превращать их в кадры, которые можно будет воспроизводить штатными средствами ОС. Но я уже склоняюсь к варианту собственного решения, а в ffmpeg только идею подсмотреть. Так что вопрос можно считать закрытым.

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

По-моему тебе просто нужно сделать визуализацию данных, записать ее на видео с помощью ffmpeg и передавать.

goingUp ★★★★★
()
Ответ на: комментарий от max_lapshin

Да нет у меня никакой боли. h264 это кодек, mkv это контейнер. И у того, и у того есть свой формат, под форматом я понимаю как данные и в каком представлении расположены в памяти/файле.

У меня мысль была использовать готовый контейнер и в него помещать свой поток данных с помощью своего кастомного кодека.

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

По-моему тебе просто нужно сделать визуализацию данных, записать ее на видео с помощью ffmpeg и передавать.

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

yetanother ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.