![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Brain89 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 18.1.2010 Репутация: 2 Всего: 2 |
Мне требуется захватить видео из Интернет потоков типа mms://live.rfn.ru/vesti_24 и сохранить на диске. Искал в сети, видимо плохо, потому что толком ничего не нашел. В основном, все примеры захватывают видео с камеры и тюнера, а вот примеров захвата и сохранения Интернет-потока нет. Может, кто-нибудь сталкивался с такой задачей? Или может посоветовать, в каком направлении смотреть? Или есть какой-нибудь готовый компонент для таких целей? Заранее спасибо.
Это сообщение отредактировал(а) Brain89 - 5.5.2011, 13:12 |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
можно взять проект VLC и посмотреть как в нём - у него даже API есть..
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Brain89 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 18.1.2010 Репутация: 2 Всего: 2 |
2jonie
Я не уверен, но вроде бы VLC не поддерживает захват потокового видео. Открывать - открывает, но не позволяет сохранять. Я нашел платный компонент http://www.visioforge.com/video-capture-sdk-net2.html. Может, кто знает его бесплатный аналог или может подсказать, на основе чего он работает? |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
а я уверенч то умеет)) http://forum.videohelp.com/threads/257045-...LC-Media-Player ну иль mplayer тоже вроде бы умел всё что надо.... вообще своё городить тут сомнительное удовольствие, разве что API юзать Это сообщение отредактировал(а) jonie - 5.5.2011, 14:15 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Brain89 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 18.1.2010 Репутация: 2 Всего: 2 |
2jonie
Конечно, с нуля писать неохота, но если не будет других вариантов... VLC действительно умеет сохранять, но при этом через раз вылетает. Тем более, разработка идет на .NET, а обертки VLC подключаются с трудом, а потом на каждом шаге выдают кучу ошибок. Мне нужен более стабильный вариант. MPlayer смотрится лучше, но обертки для него также не назовешь стабильными. |
|||
|
||||
Fitc |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 30.1.2010 Репутация: 3 Всего: 4 |
прошу прощения за оффтоп, а VLC может также сохранять музыку с интернет потоков?
|
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
Fitc, вообще умеет, но это умеет ничем не хуже и winamp
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Brain89 |
|
||||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 18.1.2010 Репутация: 2 Всего: 2 |
Проблему решил. Если кому будет потом интересно, расскажу как.
Так как найти готовый, но при этом бесплатный контрол я отчаялся, то решил хватать поток с помощью DirectShow, а именно DirectShowLib. Для этого пришлось по верхам ознакомиться с графостроительством ![]() Итак, вначале создаю необходимые переменные и объекты:
Затем их инициализирую:
А потом создаю два фильтра, один для захвата потока, другой для вывода в файл. Так как потоки Windows Media, то использую WM Reader и WM Writer.
Затем нужно соединить два фильтра, для этого пришлось написать свою функцию, возвращающую пин по его имени или части имени.
Осталось только запустить граф на выполнение:
И, когда нужно, остановить захват:
Кода, конечно, многовато для такого простого случая, но зато все понятно и работает ![]() |
||||||||||||
|
|||||||||||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |