Захват DV-файла Type-1
[Функция, связанная с этой страницей, DirectShow — это устаревшая функция. Он был заменен MediaPlayer, IMFMediaEngine и аудио/видеозахватом в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, по возможности, использовать новый код MediaPlayer, IMFMediaEngine и Аудио/Видео захват в Media Foundation вместо DirectShow. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Файл AVI типа-1 DV содержит один чередуемый поток. Чтобы записать файл type-1 во время предварительного просмотра, используйте граф фильтра, показанный на следующей схеме.
Фильтры в этом графе включают:
- Фильтр Smart Tee разделяет чередуемый DV в поток записи и поток предварительного просмотра. Оба потока содержат одни и те же чередуемые данные.
- AVI Mux и Файловый Записывающий Модуль записывают чередующийся поток на диск.
- Разделитель DV разделяет чередованный поток на видеопоток DV и аудиопоток. Оба потока визуализируются для предварительного просмотра.
- Декодировщик видео DV декодирует видеопоток DV для предварительного просмотра.
Создайте этот граф следующим образом:
ICaptureGraphBuilder2 *pBuilder; // Capture graph builder.
IBaseFilter *pDV; // DV capture filter (MSDV)
IBaseFilter *pAviMux // Avi Mux filter.
// Initialize pDV (not shown).
// Create and initialize the Capture Graph Builder (not shown).
// Create the file-writing section of the graph.
hr = pBuilder->SetOutputFileName(&MEDIASUBTYPE_Avi,
OLESTR("C:\\Example1.avi"), &pAviMux, 0);
// Render the capture stream.
hr = pBuilder->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Interleaved,
pDV, 0, pAviMux);
// Render the preview stream.
hr = pBuilder->RenderStream(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Interleaved,
pDV, 0, 0);
// Remember to release all interfaces.
- Вызовите ICaptureGraphBuilder2::SetOutputFileName, чтобы соединить фильтр AVI Mux с фильтром записи файлов.
- Вызовите ICaptureGraphBuilder2::RenderStream с категорией пинов PIN_CATEGORY_CAPTURE для обработки потока захвата. Построитель графа захвата автоматически добавляет фильтр Smart Tee.
- Снова вызовите RenderStream, но с пин-категорией PIN_CATEGORY_PREVIEW, чтобы вывести поток предварительного просмотра. Пропустите этот вызов, если вы не хотите предварительно просмотреть видео.
Для обоих вызовов RenderStream тип мультимедиа MEDIATYPE_Interleaved, то есть интерливированное видео DV. В этом коде Capture Graph Builder автоматически добавляет все необходимые фильтры, за исключением фильтра захвата MSDV.
Связанные темы