Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2011, 15:11   #1
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию Скачивание видео файла по кадрам

Подскажите возможно скачивать видео файл по кадрам и в это время воспроизводить, как это делают флеш плеры на сайтах?
Если это возможно подкиньте пару статей или примеров как это осуществить можно.
-=Virus=- вне форума Ответить с цитированием
Старый 14.02.2011, 19:03   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

смотря какой формат, но в большинстве случаев можно
p51x вне форума Ответить с цитированием
Старый 14.02.2011, 19:16   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

только если в формате mjpeg.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 14.02.2011, 21:29   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> но в большинстве случаев можно

скорее наоборот, в большинстве случае нельзя, более того, не имеет особого смысла. Файл скачивается как обычно, а кодек сам разбирается, где кадры, где звук, где что.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 14.02.2011, 23:02   #5
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
> но в большинстве случаев можно

скорее наоборот, в большинстве случае нельзя, более того, не имеет особого смысла. Файл скачивается как обычно, а кодек сам разбирается, где кадры, где звук, где что.
Можно подробнее о кодеках.
-=Virus=- вне форума Ответить с цитированием
Старый 14.02.2011, 23:03   #6
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Можно ли узнать перед скачиванием какой формат видео или аудио?
-=Virus=- вне форума Ответить с цитированием
Старый 15.02.2011, 01:01   #7
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Обычно достаточно стянуть первые 100-200KB, чтобы узнать, какой контейнер (avi, mkv, flv, mov, mpeg), какие потоки и чем они закодированы. После этого инициализировать кодеки и кормить их данными. На сколько я знаю, только avi содержит таблицу со смещениями кадров в файле. Т.к. каждый кадр может занимать разное число байт, то без таблицы нужно просто примерно перемещаться по файлу и пытаться или самому найти начало кадра, или надеятся, что кодек сам поймёт. В mpeg потоках каждый фрейм имеет строгий заголовок, так что с этим обычно проблем нет. Плюс кадры есть ключевые, без которых корректное декодирование последующих невозможно, нужно разбирать где какой. Ну и, естественно, аудио и видео в файле перемешаны, так что читать "только кадры с №1234356 по №1234766" не получится.

В общем, файл будет скачиваться поблочно, а не покадрово, как и любой другой. А потом уже будут разборки скачаных блоков по кадрам.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 15.02.2011 в 01:05.
veniside вне форума Ответить с цитированием
Старый 15.02.2011, 13:13   #8
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
Обычно достаточно стянуть первые 100-200KB, чтобы узнать, какой контейнер (avi, mkv, flv, mov, mpeg), какие потоки и чем они закодированы. После этого инициализировать кодеки и кормить их данными. На сколько я знаю, только avi содержит таблицу со смещениями кадров в файле. Т.к. каждый кадр может занимать разное число байт, то без таблицы нужно просто примерно перемещаться по файлу и пытаться или самому найти начало кадра, или надеятся, что кодек сам поймёт. В mpeg потоках каждый фрейм имеет строгий заголовок, так что с этим обычно проблем нет. Плюс кадры есть ключевые, без которых корректное декодирование последующих невозможно, нужно разбирать где какой. Ну и, естественно, аудио и видео в файле перемешаны, так что читать "только кадры с №1234356 по №1234766" не получится.

В общем, файл будет скачиваться поблочно, а не покадрово, как и любой другой. А потом уже будут разборки скачаных блоков по кадрам.
Я так понимаю придётся всё равно полостью качать весь видео файл сразу?
-=Virus=- вне форума Ответить с цитированием
Старый 15.02.2011, 14:22   #9
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Нет, зачем? HTTP прекрасно справляется с закачкой блока из файла с указанного смещения, указанного размера. Это вам и нужно.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 15.02.2011, 16:13   #10
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
Нет, зачем? HTTP прекрасно справляется с закачкой блока из файла с указанного смещения, указанного размера. Это вам и нужно.
Можно примеры? Если есть исходники.
-=Virus=- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скачивание файла winsock Horus92 Работа с сетью в Delphi 13 25.02.2011 13:29
Скачивание файла fezilk24 Работа с сетью в Delphi 16 07.02.2011 18:35
Частичное скачивание файла Usov Работа с сетью в Delphi 1 19.10.2009 21:45
Скачивание файла Lemo Помощь студентам 16 28.07.2009 22:54
Скачивание файла с прогрессом CoDeR Работа с сетью в Delphi 2 22.10.2007 09:10