Я играл с скомпилированной версией https://github.com/FFmpeg/FFmpeg. Но у нее есть некоторые проблемы, при закрытии открытого потока с использованием avio_close
(для его закрытия требуется очень много времени).
Я пытался понять, что может пойти не так, прочитав реализацию, но не смог ничего найти.
Что я хотел бы сделать, так это на самом деле иметь консольное приложение C ++, которое использует файлы c, и отлаживать их во время выполнения кода (с использованием точек останова и т. Д.).
К сожалению, я не могу найти информацию о том, как его настроить.Простого копирования файлов в новом консольном приложении недостаточно.
Заранее спасибо за любые предложения.
Редактировать: я уже вижу итоговое голосование.Если этот вопрос не подходит для данного сайта, я его удалю.Но, пожалуйста, укажите мне правильное направление, где разместить это сообщение. Хотя это довольно общий вопрос, я считаю, что он ясен и достаточно информации предоставлено.
Edit2: Да, мне было немного неясно, что я использую.
Я использую Visual Studio Community 2017 в Windows 10 для создания консольного приложения C ++.
Edit3:
Шаги, которые я предпринял, используя исходные файлы в моем консольном приложении, которое использовало библиотеки DLL.
- Скопировать все содержимое FFmpeg-master в мое консольное приложение
- Включить все из них в проект консольного приложения c ++
- Запустить сборку - требуетсянавсегда и имеет бесконечные ошибки сборки (> 1000) - возможно, это связано с компилятором
Edit4:
У меня нет реальных ошибок с avio_close
, просто слишком много времени, чтобы закрыть поток,Что я узнал, поиграв с настройками, так это то, что когда установлен параметр fifo_size
, закрытие потока происходит намного быстрее, в зависимости от того, как мало заданное значение.И это имеет смысл, поскольку fifo_size
относится к размеру пакета, но я не выяснил, где в коде этот размер влияет.
fifo_size = units Установить размер циклического буфера приема UDP, выраженный в количестве пакетов размером 188 байт.Если не указано, по умолчанию используется значение 7 * 4096.
Edit5: Я до сих пор не нашел способа скомпилировать проект ffmpeg с открытым исходным кодом в libs, dll и pdbs.Я первый нуждаюсь в таких файлах (кажется нереальным)?Единственный инструмент, способный доставить это, - vcpkg
.Единственная проблема заключается в том, что он компилирует версию 3.3.3, а последняя - 4.0.2.
Я пытался изменить файл vcpkg\ports\ffmpeg\portfile.cmake
, чтобы он включал последнюю версию ffmpeg, но он не собирался.
Есть ли другие предложения?