Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
20 / 20 / 8
Регистрация: 20.05.2010
Сообщений: 502
1

Как получить кадры из видео которое byte[]?

25.07.2015, 04:27. Показов 3077. Ответов 8
Метки нет (Все метки)

Есть видео в виде массива байтов(то есть прочитаный файл в массив байт). Как с этого видео получить кадры и сохранить их в массив Bitmap[] frames;?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.07.2015, 04:27
Ответы с готовыми решениями:

Получить кадры из видео
Добрый день. Появилась необходимость получить кадры из видео. Серфю инет. Наткнулся на DirectShow...

Как разбить видео на кадры
Всем добрый вечер. В процессе написания программы возникла потребность разбить видео на Bitmap...

Как сделать из видео ряд изображений (разбивка на кадры)
Подскажите, пожалуйста, как разбить видео на кадры?

Разбиение видео на кадры, кадры на пиксели
Задача состоит в том, что бы разбить кусок видео разрешением 128p покадрово. Затем кадры необходимо...

8
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,164
Записей в блоге: 1
25.07.2015, 10:57 2
...любой файл - это массив байтов. У видеофайла есть заголовок и свой формат кодирования кадров. Самый простой у MJPEG, где само видео есть готовые кадры.

Поскольку мы говорим о сферическом видеоформате, то очевидно что решение тоже будет сферическим.
0
20 / 20 / 8
Регистрация: 20.05.2010
Сообщений: 502
25.07.2015, 17:50  [ТС] 3
raxp, Извеняюсь, забыл указать формат, формата может быть два либо *.mp4, либо *.webm, так что будет тот который проще для декодирования. Тогда как на пример прочесть кадры из mp4 видео, или на пример читать по одному? Это все мне нужно для того что бы эти кадры передавать в VLC API ,и что бы он проиграл их, а то я так понял в нем нельзя передать сам массив байт(видео) и что бы он их проиграл сам...
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,164
Записей в блоге: 1
25.07.2015, 19:04 4
Для вас видимо самое простое использовать готовые всеядные API SDK, например VLC или кроссплатформенный FFMPEG. Как выдрать кадр с определенного места или все есть на офсайте.

Например для FFMPEG:
Код
ffmpeg -i *.mp4 -an -r 1 -y -s 320x240 1.jpg
и т.д.

p.s.: причем FFMPEG можно интергировать как в свое приложение, так и командовать консолью. Вы упомянули тоже VLC, так никто не мешает использовать медиафреймворк libVLC.

p.p.s.: также грабить видеопоток можно через DirectShow.

VLC API ,и что бы он проиграл их, а то я так понял в нем нельзя передать сам массив байт(видео)
VLC, FFMPEG и DirectShow поддерживают воспроизведение потокового видео.
0
20 / 20 / 8
Регистрация: 20.05.2010
Сообщений: 502
25.07.2015, 22:26  [ТС] 5
raxp, Я уже трое суток пытаюсь найти решение как воспроизвести видео которое представляет собой массив байт полученный из файла видео(котрое в ресурсах сборки), пробовал `MediaElement`, `libVLC` `DirectShow`, ничего у меня так и не вышло... Просто не могу найти ни одного адекватного примера по потоковом использовании этих библиотек и элементов.

Единственное что нашел это `libVLC`, но он воспроизводит только кадры, то есть там устанавливаешь callback метод который потом VLC вызывает и передаешь ему кадр, а что бы в него передать весь массив видео я так и не нашел как это сделать... А с `DirectShow` во обще не разобрался, там нужны какие то фильтры что б открывать видео, короче просто жесть какая то, неужели нету ни одного решения что бы просто открыть и воспроизвести видео из ресурсов сборки ***А НЕ ИЗ ФАЙЛА НА ДИСКЕ*** Как во всех гайдах и примерах...

Более того, я думал на крайняк смогу конвертировать видео в `gif` и просто открыть, но меня и тут ожидало полнейшее разочарование, я хз просто такой фреймворк мощный а такой простой функции как открыть видео с ресурсов не реализовано, я в печали просто...

Неужели придется делать через ...опу и писать файл в темп папку...
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,164
Записей в блоге: 1
25.07.2015, 22:30 6
Начнем с того, что определитесь с чем работаете. Массив байт ни о чем не говорит. Медиапоток какой формат? MP4 контейнер? Так у него четко выраженная структура.

Откуда взялся массив байт? Что отдает?

А с `DirectShow` во обще не разобрался, там нужны какие то фильтры что б открывать видео
я разбирался с нуля с помощью этого замечательного ресурса http://directshow.wonderu.com/статьи
0
20 / 20 / 8
Регистрация: 20.05.2010
Сообщений: 502
26.07.2015, 00:30  [ТС] 7
raxp, Массив байт это прочитанный файл видео, которое хранится в ресурсах сборки, формат файла mp4.
И мне нужно воспроизвести этот массив как видео файл, больше ничего...
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,164
Записей в блоге: 1
26.07.2015, 06:34 8
Если это файл видео в ресурсах, то как вы его воспроизводите? У меня три варианта:
1- сохраняете из ресурсов в файл и воспроизводите. Тут вообще проблем не вижу, это просто видеофайл и любой плеер его воспроизведет, лишь бы кодек в ОС был соответствующий. Даже одной строкой MCI.
2- выдергиваете контент из собственного ресурса, помещаете в память и воспроизводите видео из памяти, не сохраняя на диск.
3- выдергиваете контент из внешнего ресурса (например DLL), помещаете в память и воспроизводите видео из памяти, не сохраняя на диск.

Вот как пример воспроизведения видео (контейнер AVI с MP4) из памяти как из собственных ресурсов, так и ресурса из DLL методами DirectShow:
0
20 / 20 / 8
Регистрация: 20.05.2010
Сообщений: 502
26.07.2015, 16:18  [ТС] 9
raxp, У меня только один вопрос, как оО? Я три сутки искал на всех ресурсах которые я знаю, даже на японских ема-е, а тут Вы мне такое кидаете...

Ваше решение явно то что мне нужно... Можна сурс сего чуда в ПМчик?

Добавлено через 9 часов 3 минуты
raxp, Включите прием личных сообщений, у Вас он выключен.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.07.2015, 16:18

Как поочередно выводить кадры, чтобы создалось впечатление, что это видео?
при таком коде показывается только последний кадр помогите, пожалуйста! k1='.jpeg'; for...

Перепрыгивают кадры в аудио и видео
Всем привет. Народ, подскажите в чем глюконат? Дело в том, что когда играет музыка, некоторые...

Кадры видео в слои CS6
Дали диск с Adobe Photoshop CS6. Появилась такая же проблема, что и в CS5. Не работает функция...

Кадры видео в слои AF CS5
Скачал фотошоп CS5, надо из видео сделать анимацию gif. Нажимаю Файл ----> Импортировать ----->...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.