Показать источник HD-видео - PullRequest
3 голосов
/ 23 мая 2009

Мне нужно захватить источник HD-видео (например, hi def tv) и показать его на ПК. Что я должен использовать? Я бы предпочел решение с Windows и C #, но я открыт для других вариантов.

Заранее спасибо

Ответы [ 4 ]

15 голосов
/ 26 мая 2009

Я бы порекомендовал VLC или mplayer / mencoder (версии для win32). Они могут управляться из командной строки из вашего приложения C #. VLC поддерживает любое устройство захвата DirectShow и обладает значительным количеством дополнительных параметров захвата, транскодирования и публикации.

Другой вариант - ffmpeg , который доступен как инструмент командной строки или как привязка к C # .

Лично я бы порекомендовал использовать версию одного из этих инструментов из командной строки для привязки C #, поскольку все эти программы, как правило, довольно быстро разрабатывают патчи и функции. Вполне вероятно, что привязка C # будет устаревшей по сравнению с текущей стабильной (не говоря уже о SVN) сборкой любой из этих программ. Кроме того, вы найдете намного больше документации в формате командной строки, так как обычно эти инструменты используются.

Наконец, это можно сделать, создав собственный фильтр захвата DirectShow . Эта опция поставляется с моим БОЛЬШИМ ЖИРОМ ПРЕДУПРЕЖДЕНИЕМ, что даже при использовании таких инструментов, как Capture Graph Builder DirectShow - чрезвычайно сложный и темпераментный зверь, для правильной работы требуется большой опыт. Он также страдает от регулярных изменений API, различий в платформах Windows и плохой документации. Идите по этому пути на свой страх и риск.

1 голос
/ 30 декабря 2009

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

0 голосов
/ 26 мая 2009

Сначала я бы посмотрел на существующее программное обеспечение, чтобы сделать это. Например, Windows Movie Maker может отображать и захватывать выходные данные видеокамеры HD. mplayer должен иметь возможность отображать прямую трансляцию с большинства карт / камер захвата (и имеет полноэкранный режим). Существуют и другие более полные системы, такие как ScopeBox , OnLocation , UltraScope или любое программное обеспечение NLE (Adobe Premiere, Final Cut Pro и т. Д.). Они нацелены на производство видео, но вы на самом деле не упоминаете, почему вы отображаете или захватываете видео.

Если вы хотите написать что-то с нуля, DirectShow API должен стать хорошей отправной точкой.

Мне нужно захватить источник HD-видео (например, hi def tv)

Вы не можете снимать с HD-телевизора, так как это просто дисплей.

Вы можете снимать с HD-видеокамеры, но вам понадобится карта захвата - Blackmagic Design делает много из них, самый дешевый из них - $ 150 «Видеорегистратор» , который может захватывать через компонент, их ~ $ 200 карта "Intensity" будет захватывать через HDMI (и о любом другом аналоговом соединении)

После этого вы сможете выполнять запись с карты BlackMagic, используя DirectShow или QuickTime API (страница поддержки относительно этого ). То же самое должно быть верно для других карт захвата (я просто упоминаю BlackMagic, потому что они являются одним из наиболее известных брендов)

Стоит отметить, что если вы снимаете HD-видео (1920x1080p), вы имеете дело с большим количеством данных. Большинство современных компьютеров должны справляться с этим нормально, но для этого все еще требуется высокая скорость процессора и ввода-вывода.

Другое дело, вы не можете снимать с чего-то вроде проигрывателя Bluray, так как система HDCP (защита цифрового контента с высокой пропускной способностью) предотвращает это.

0 голосов
/ 23 мая 2009

Hauppage предлагает несколько решений для захвата видео, включая захват HD-видео. Я считаю, что у них есть драйверы для C #.

...