Мне нужно написать программу, похожую на телевидение.
Мне нужно будет создать 1 видео форму
например 4 видеофайла (допустим, первое видео должно быть в левом верхнем углу, второе — в правом верхнем углу потока и т. Д.).
Также мне нужно добавить прокручиваемый текст к видео и так далее, и так далее …
Итак, вопрос в том,
если есть ЛИЭС что может помочь мне с этим?
Спасибо.
В вашем вопросе пропущено много деталей. Ты пишешь кроссплатформенную программу? Или он должен работать только на Windows или * nix? Также у вас есть неограниченный бюджет для возможных библиотек? Или вы ищете библиотеки с открытым исходным кодом? Так…
Из здравого смысла вы можете использовать библиотеку FFMPEG, которая является кроссплатформенной. Если вы можете использовать платформу Windows, чем вы могли бы использовать Avisynth, он предоставляет действительно мощный механизм сценариев, который позволяет объединять несколько видео в одно, и вы можете добавить свои собственные фильтры, которые добавляют водяной знак или другие виды эффектов
Не уверен насчет библиотек, и вы также не упомянули формат входных видеофайлов (я предполагаю, что они находятся в сжатом формате, как H.264, поскольку, если они являются необработанными, это просто подмножество), но мне нужно чтобы сделать shis на Windows, я бы сделал следующее:
1) Считайте и декодируйте кадры из входных файлов (с помощью FFMPEG или VFW), а затем поместите закодированные данные в большее растровое изображение с результирующим размером 4 экранов.
2) Поскольку теперь это необработанное растровое изображение, примените текст или все, что нужно, например, с помощью. DrawText
(http://msdn.microsoft.com/en-us/library/windows/desktop/dd162498(v=vs.85).aspx), чтобы упростить использование WinAPI, вы можете использовать библиотеку-оболочку GDI.
Я предполагаю, что одна из основных ловушек здесь — это правильная синхронизация времени представления кадров из разных файлов, так как все они могут иметь разные fps и временные интервалы, поэтому вы не можете просто читать кадр за кадром, но вам нужно отслеживать, какой кадр из которого файл должен быть представлен на каждом шаге при применении необходимых вам преобразований.