5 / 5 / 3
Регистрация: 24.05.2015
Сообщений: 382
WPF

FFmpeg Preview and Record

21.04.2022, 10:27. Показов 617. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Суть такова, у меня есть плеер FFME для предпросмотра источника, в моем случае с Decklink платы, а так же есть функционал записи этого источника. Но проблема в том что я не могу одновременно смотреть этот источник и записывать. У FFmpeg есть такой функционал как Preview, но он открывается только при записи и только в отдельном окне FFplay, но это все не то. Мне надо что бы превью было в моем FFME плеере всегда и при этом чтоб была возможность записи этого же источника. Ну то есть так же как это реализовано например в OBS или vMix. Если кто знает как это реализовать подскажите пожалуйста.

Добавлено через 11 минут
Под Preview я подразумевал вот это
Code
1
-pix_fmt yuv420p -an -f sdl2 -window_size 1280x720 "Preview"
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.04.2022, 10:27
Ответы с готовыми решениями:

RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work warn
import matplotlib.pyplot as plt import Squarediamondlib as Land from pydub import AudioSegment from pydub.playback import play ...

Как создать record внутри которого есть динамический массив с record-ами?
Упрощу код, чтоб не писать полные record-ы: type TSec = record vSize : DWord; vAddr : DWord; rSize : DWord; ...

Голосовалка, ошибка: Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Вопросы по голосовалке с ответами, из базы вытаскиваются, при нажатии на ГОЛОСОВАТЬ результаты показываются, но на первые три ответа. В...

12
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15974 / 11107 / 2867
Регистрация: 21.04.2018
Сообщений: 32,653
Записей в блоге: 2
21.04.2022, 11:11
SCAR101, какое это имеет отнjшение к WPF?
Для использования в WPF у этого плеера должно быть соответствующее API.
И использовать его как-то иначе, чем предусмотрено в API, невозможно.
0
5 / 5 / 3
Регистрация: 24.05.2015
Сообщений: 382
21.04.2022, 11:13  [ТС]
Элд Хасп,
Цитата Сообщение от Элд Хасп Посмотреть сообщение
какое это имеет отнjшение к WPF
такое что я использую этот плеер в WPF проекте) и он как бы работает, вопрос конкретно в FFmpeg заключается
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15974 / 11107 / 2867
Регистрация: 21.04.2018
Сообщений: 32,653
Записей в блоге: 2
21.04.2022, 12:31
Цитата Сообщение от SCAR101 Посмотреть сообщение
такое что я использую этот плеер в WPF проекте
У него есть API для этого?
Какой-то NuGet проект с WPF контролом для его вывода в WPF Окне?
0
5 / 5 / 3
Регистрация: 24.05.2015
Сообщений: 382
21.04.2022, 12:36  [ТС]
Элд Хасп, да
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15974 / 11107 / 2867
Регистрация: 21.04.2018
Сообщений: 32,653
Записей в блоге: 2
21.04.2022, 12:37
Цитата Сообщение от SCAR101 Посмотреть сообщение
да
В этом API есть методы для того что вам нужно?
0
5 / 5 / 3
Регистрация: 24.05.2015
Сообщений: 382
21.04.2022, 12:46  [ТС]
Элд Хасп, там команда вставляется в Uri ну точнее не вся команда а вот так, параметры указываются в MediaInitializing :
C#
1
2
3
4
5
6
Media.MediaInitializing += (s, e) =>
            {
                e.Configuration.PrivateOptions["video_size"] = 1920x1080;
                e.Configuration.PrivateOptions["framerate"] = 25;
            };
            await Media.Open(new Uri("device://dshow/?video=Decklink Video Capture:audio=Decklink Audio Capture));
Добавлено через 2 минуты
но вот если так воспроизводить, то я не могу записывать этот же источник, так как он уже занят, но я уверен что как то можно раздвоить его чтоли или что то типо того. Вот только не пойму как, весь гугл перегуглил но все не то что надо. Просто как то же это реализовывают
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15974 / 11107 / 2867
Регистрация: 21.04.2018
Сообщений: 32,653
Записей в блоге: 2
21.04.2022, 12:53
SCAR101, какой пакет используете?

Цитата Сообщение от SCAR101 Посмотреть сообщение
я уверен что как то можно раздвоить его чтоли или что то типо того
Раз принимает Uri, скорее всего, можно сделать какой-то свой прокси который будет создавать для одного файла два потока.
Но это к WPF неотносится.
Надо смотреть в строну служб, сервисов для Windows.
0
5 / 5 / 3
Регистрация: 24.05.2015
Сообщений: 382
21.04.2022, 12:56  [ТС]
Элд Хасп, так дело то не в файле, а в том что directshow устройство уже занято, то есть надо как то понять как одно устройство использовать в два потока
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15974 / 11107 / 2867
Регистрация: 21.04.2018
Сообщений: 32,653
Записей в блоге: 2
21.04.2022, 12:59
Цитата Сообщение от SCAR101 Посмотреть сообщение
так дело то не в файле, а в том что directshow устройство уже занято, то есть надо как то понять как одно устройство использовать в два потока
Суть не в том файл это или устройство.
Это не имеет отношения к WPF.
WPF это инструмент построения GUI, а не средство работы с файлами и тем более устройствами.
Если вы используете WPF API и в этом API нет нужных вам методов, то вам самому надо создавать такое API для вашего устройства.
И WPF никак в этом помочь не может.
Он может только использовать уже готовое API.
0
5 / 5 / 3
Регистрация: 24.05.2015
Сообщений: 382
22.04.2022, 14:00  [ТС]
Элд Хасп, да это то все понятно, вопрос был не про возможности плеера. Вопрос был больше связан с directshow и ffmpeg. А так как я не нашел нужного раздела на форуме написал сюда так как пишу приложение на WPF.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15974 / 11107 / 2867
Регистрация: 21.04.2018
Сообщений: 32,653
Записей в блоге: 2
22.04.2022, 14:12
Цитата Сообщение от SCAR101 Посмотреть сообщение
А так как я не нашел нужного раздела на форуме написал сюда так как пишу приложение на WPF.
Но здесь вы вряд ли найдёте специалистов разбирающихся в этом.
Ещё как бы могли помочь, если бы проблемы были связанны с применением какого-то WPF контрола из стороннего пакета.
Но у вас, насколько я понял, никакой речи об использование WPF даже не идёт.
Ваш пакет выводит видео в отдельном Окне никак не связанном с WPF.

Куда вам обраться.... Мне даже сложно сказать.
Если это проблемы использования пакета, задаваемых параметров, то, наверное, в общий раздел Шарпа.
Если же это проблемы железа, то это куда в плюсы или мультимедиа, наверное... Не могу точно сказать где лучше будет.

Ещё раз.
Проблема не в том, что вы что-то нарушили создав тему не в том разделе.
А в том, что в этот раздел специалисты по профилю вашей проблемы, возможно, даже и заглядывать не будут.
0
5 / 5 / 3
Регистрация: 24.05.2015
Сообщений: 382
22.04.2022, 14:37  [ТС]
Элд Хасп, понял, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.04.2022, 14:37
Помогаю со студенческими работами здесь

Ошибка Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record
Большое спасибо всем кто хоть что-нибудь подскажет или наведёт на нужную мысль!! Короче проблема такая. ADOQuery1.Close; ...

ADODB.Field error '80020009' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Выдается следующая ошибка : === ADODB.Field error '80020009' Either BOF or EOF is True, or the current record has been deleted....

Копирование из RECORD в RECORD
Всем привет. Пытаюсь разобраться. Есть переменная типа записи, в нее нужно скопировать ячейку массива, а каждая ячейка массива является...

preview - next
привет всем! Пытаюсь сделать ссылки предыдущ. и следущ. - никак не получается :wall: Беру из БД статьи и на странице отдельного...

Настройка preview
Гуру qt! Одно время очень хотел настроить комп для писания приложений на андроиде, даже скачал и установил нужные компоненты, но протом...


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

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

Новые блоги и статьи
Динамические массивы в C++ - создание и использование
NullReferenced 27.04.2025
Динамические массивы представляют собой один из фундаментальных инструментов программирования на C++, позволяющий создавать структуры данных, размер которых определяется во время выполнения. . .
Асинхронный JavaScript: Промисы, Async/Await и Fetch API
Reangularity 27.04.2025
Пользователь заходит на веб-страницу, нажимает кнопку и. . . ничего не происходит. Сайт словно замер. Через несколько секунд всё внезапно оживает, но пользователь уже успел закрыть вкладку. Знакомая. . .
Management on GitLab and repository management in Visual Studio code
jigi33 27.04.2025
- repo management on GitLab - CI/ CD in GitLab - VCS repository management in Visual Studio code (see attachments)
Kanban или Scrum - что выбрать?
EggHead 27.04.2025
Kanban и Scrum — уже много лет удерживают лидирующие позиции среди гибких подходов. Руководители проектов и команды разработчиков то и дело сталкиваются с дилеммой: какой из этих двух методов выбрать. . .
Кастомные Middleware на C# в ASP.NET Core
UnmanagedCoder 27.04.2025
Разработка веб-приложений сегодня мало напоминает монолитное программирование прошлых лет. На смену громоздким блокам кода пришла модульная архитектура, где каждый компонент выполняет строго. . .
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru