Sergey Alexandrovich Kryukov
Я не уверен на 100%, что будет работать, просто потому, что я использую много различных контейнеров и форматов, и у меня всегда есть самое свежее программное обеспечение поддержки, поэтому для меня трудно понять, что должно произойти, если вы все это настроили с нуля. Поэтому, пожалуйста, поймите это и просто попробуйте следовать моим предложениям и скажите мне, есть ли тот или иной вариант.
Первый вариант - внедрить существующий элемент управления проигрывателем Windows Media. Вот как это можно сделать: Как встроить Проигрыватель Windows Media в форму[^].
Другим подходом было бы встраивание WPF player System.Windows.Media.MediaPlayer
:
Класс MediaPlayer (System.Окна.Средства массовой информации)[^].
Размещение элемента управления WPF в приложении Forms требует некоторых дополнительных усилий. Во многих случаях это можно рассматривать как своего рода перебор. Вот как это можно сделать: Пошаговое руководство: размещение составного элемента управления WPF в Windows Forms[^].
Теперь проблема заключается в поддержке вашего потока. Если у вас уже есть правильно организованная сетевая потоковая передача, вы просто устанавливаете правильный URI в плеере. Проблема может заключаться в поддержке вашего контейнера и кодеков для H264. Честно говоря, я никогда не помню, какие версии Windows связывают какие кодеки по умолчанию, я просто никогда не полагаюсь на это; я могу только сказать, что "родная" поддержка Windows была почти рудиментарной; я никогда не считал ее сколько-нибудь приличной. Для работы с Windows player можно устранить проблему поддержки кодеков, установив пакет кодеков. Обычно я рекомендую очень полный пакет кодеков K-Lite:
K-Lite Codec Pack — Википедия, свободная энциклопедия[^],
Руководство по кодеку: K-Lite Codec Pack — для Windows 10 / 8.1 / 7 / Vista / XP[^].
(Одно бортовое примечание: обратите внимание на Медиаплеер Классический Домашний Кинотеатр который приходит вместе с ним. Я думаю, что он бесконечно лучше любого игрока Microsoft, но, возможно, это дело вкуса. :-))Теперь еще одна альтернатива-не полагаться ни на один проигрыватель Microsoft. Одним из таких продуктов является VLC (Video LAN):
Видеолан — Википедия, свободная энциклопедия[
^],
VideoLAN — VLC: официальный сайт — бесплатные мультимедийные решения для всех ос![
^].
Он не зависит от кодеков, установленных в Windows, он размещает их сам, потому что он основан на библиотеке libav (а также FFMpeg). Пожалуйста смотрите для получения более подробной информации:
Видеолан — Википедия, свободная энциклопедия[
^],
libavcodec — Википедия, свободная энциклопедия[
^],
Видео[
^],
https://en.wikipedia.org/wiki/FFmpeg[
^],
Видео[
^].
Вы можете использовать оболочку .NET для использования в вашем приложении. Пожалуйста смотрите:
libvlc.net скачать | SourceForge.net[
^],
C Sharp — VideoLAN Wiki[
^],
ZeBobo5/Vlc.DotNet — C# — GitHub[
^].
Кстати, VLC также можно использовать как сам потоковый сервис (и имеет много других применений — это на самом деле не просто плеер). Пожалуйста, посмотрите мои прошлые ответы:
нужна помощь в получении потокового видео с другого компьютера в C#[
^],
Предварительный просмотр выбранного файла в Проводнике Windows с помощью C#[
^],
Потоковая передача музыкальных файлов в vb.net без WMP[
^].
—СА
bccarey
Крюков,
Спасибо Вам за всю информацию. Я много читал об этом, но то, как вы это изложили, делает все, что я читаю, более осмысленным.
Вы не только ответили на мой вопрос о том, что использовать, я думаю, что вы также ответили на вопрос о том, что такое различные видеорешения.
В настоящее время я рассматриваю возможность использования ffmpeg, потому что вчера мне также сказали, что им понадобится мой код, чтобы выложить каждый кадр в виде картинки.
Для тех, кто еще читает это в будущем, я нашел следующую ссылку после прочтения ответа Крюкова и сосредоточения внимания на ffmpeg, который, как я думаю, вы можете найти полезным, если хотите написать свою собственную оболочку, как я.
https://jasonjano.wordpress.com/2010/02/09/a-simple-c-wrapper-for-ffmpeg/
Еще раз благодарю вас за ваш ответ.