редактирование видеофайла

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

редактирование видеофайла

Сообщение Aleandr » 04.06.2021 16:43:14

Требуется получить попиксельный доступ для редактирования видеоданных. Режима реального времени не требуется. Нужно открыть по номеру нужный кадр, обработать и обработанный кадр записать обратно. Какой модуль для этого посоветуете?
Aleandr
незнакомец
 
Сообщения: 4
Зарегистрирован: 04.06.2021 16:24:09


Re: редактирование видеофайла

Сообщение Aleandr » 04.06.2021 22:21:47

Снег Север, спасибо за ссылки.

Бегло посмотрел, как мне показалось это всё описание компонент для работы c видео потоком (воспроизведение, работа с источником и т.д.).
Мне нужно немного другое, а именно: ранее записанный видеофайл хранится на диске, нужно открыть этот файл, прочитать кадр по номеру кадра, иметь доступ к данным в этом кадре аналогичный canvas.pixels[x,y]:=RGB(R,G,B), потом этот кадр сохранить, и начать работать со сл. кадром. В режиме реального времени отображать или вещать не требуется. Скорость обработки не является критичным фактором, т.е. допустимо 5 минутный ролик обрабатывать час.
желательно под Win10, Lazarus.

Или стоит внимательнее посмотреть, и по ссылкам то, что мне нужно?
Aleandr
незнакомец
 
Сообщения: 4
Зарегистрирован: 04.06.2021 16:24:09

Re: редактирование видеофайла

Сообщение Снег Север » 05.06.2021 04:08:04

Aleandr, тот же VLC - это опенсорсный видеоплейер, а паскалевская обертка - просто доступ к его функциям из программы. У вас в любом случае первая задача - достать изображения кадров из контейнера и раскодировать, для этого и используют внешние библиотеки. После раскодирования у вас всегда будет доступ к отдельным кадрам, как к картинкам. В принципе можно написать свои чисто паскалевские декодеры, но это очень не просто и работать они будут наверняка медленнее готовых, типа FFmpeg.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2995
Зарегистрирован: 27.11.2007 16:14:47

Re: редактирование видеофайла

Сообщение Alex2013 » 05.06.2021 13:30:01

Aleandr писал(а):Требуется получить попиксельный доступ для редактирования видеоданных. Режима реального времени не требуется. Нужно открыть по номеру нужный кадр, обработать и обработанный кадр записать обратно. Какой модуль для этого посоветуете?

Кстати давно хочу сделать программу "Персональный цензор" с возможностью выкидывать нафиг "перлы переводчиков " и рекламу.
(Один раз потерпеть можно но при повторном просмотре все это уже задалбывает довольно сильно - что характерно "лицензия" и "проплаченные фильмы" сейчас запросто могут оказаться самыми "замусоренными" )

Но нужно не только и не столько редактор видео, а в основном обработка звуковой дорожки ( простейшем случае отключение звука по таймингу и возможно дорисовка титров в случае невнятного или искаженного перевода. )
Думаю сделать програму в формате простого плеера .
Alex2013
долгожитель
 
Сообщения: 2943
Зарегистрирован: 03.04.2013 11:59:44

Re: редактирование видеофайла

Сообщение olegy123 » 08.06.2021 12:31:05

Само видео может быть сжато, кодеками и упаковано в контейнер( он неободим для сериализации данных, когда более одного потока данных, типа видеоканалы, может быть стерео, квадро.. звук который тоже может иметь более одного канала.. их необходимо последовательно записать в файл)
То есть вам необходимо иметь Demux -> Decoding как минимум.

Если Windows - то нужно смотреть в сторону DX/DirectShow там сможешь получить битмап кадра. Пишем видеоплеер (проигрыватель видео) на Delphi с использованием технологии DirectShow.

Если кросплатформенно то тут есть сложности в плане готовых и актуальных библиотек.

Добавлено спустя 7 минут 19 секунд:
Снег Север писал(а):VLC

таким же успехом можно использовать FFMpeg чтобы он раскидал кадры в виде jpg/png/bmp в папку
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: редактирование видеофайла

Сообщение Aleandr » 09.06.2021 23:39:24

Задавая этот вопрос я думал что всё гораздо проще, что есть некий компонент который умеет открыть файл и т.д.
В итоге решил задачу раскидыванием файла на кадры при помощи VideoPad, обработка каждого кадра в Lazarus, и сборка обратно в видео VideoPad'ом. Понятно, что для многократного использования это не годится.
Aleandr
незнакомец
 
Сообщения: 4
Зарегистрирован: 04.06.2021 16:24:09

Re: редактирование видеофайла

Сообщение Снег Север » 10.06.2021 04:06:49

Так вся фишка в том, что видео - это не просто файл, а контейнер, содержащий несколько видов данных (изображение и звук), которые упакованы разнообразными средствами (кодеками). Поэтому "просто" не получится.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2995
Зарегистрирован: 27.11.2007 16:14:47

Re: редактирование видеофайла

Сообщение Alex2013 » 10.06.2021 09:51:54

Aleandr писал(а):Задавая этот вопрос я думал что всё гораздо проще, что есть некий компонент который умеет открыть файл и т.д.
В итоге решил задачу раскидыванием файла на кадры при помощи VideoPad, обработка каждого кадра в Lazarus, и сборка обратно в видео VideoPad'ом. Понятно, что для многократного использования это не годится.

Вообще-то добраться до видео можно и без компонентов ... Через ActiveX ! :idea:
https://wiki.lazarus.freepascal.org/LazActiveX

Я таким образом делал "Микро браузер"
viewtopic.php?p=160723#p160723

Еще есть вот такая древность ...
https://wiki.freepascal.org/TMPlayerControl
https://github.com/DelphiForBroadcasting/ffmpeg-delphi
http://ffmpeg.org/index.html
Моя старая переделка-конверсия с дельфи ("Типа плеер" на DirectShow )
https://disk.yandex.ua/d/JDN1KzeYrfQig
(Сбирается (правда в 32-разрядом Лазарусе бо ассемблеровские вставки не адаптированы под 64-бита ) и даже работает но что-то не то с окном (видео открывается в отдельном окне ))

Добавлено спустя 7 часов 28 минут 20 секунд:
В общем чуть увлекся расследованием вопроса "Лазарус и Видео" и среди прочего накопал вот что ...

Обнаружен наверное самый простой способ показать видео! :idea:

:arrow: cvLoadVideo.7z :idea:

Это это почти аутентичный пример от OpenCV EXE-ник занимает всего 93 кб (без сжатия!) и кода тоже кот наплакал . :idea:
ИзображениеИзображение

Покадрово крутит почти любое видео (имя файла в командной строке ) а без параметров показывает изображение с веб-камеры.
( правда загрузкой звука еще даже не заморачивался, и еще не много не настроена задержка (100 миллисекунд) что малость много... Но это уже ерунда! )
Зы
Все нужные библиотеки лежат в папке Bin. (Исходники разумеется тоже не забыты ) :wink:
Разумеется это всеволишь пример, а не настоящий плеер но как "информация к размышлению" это довольно неплохая штуковина.
Alex2013
долгожитель
 
Сообщения: 2943
Зарегистрирован: 03.04.2013 11:59:44


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 36

Рейтинг@Mail.ru