Декодировать видеопоток из сокета с помощью декодера CUVID

В примере декодирования CUVID (cudaDecodeD3D9) есть VideSource класс, который берет адрес файла видео и получает CUvideosource как это:

cuvidCreateVideoSource(&hVideoSource_, sFileName.c_str(),
      &oVideoSourceParameters); //hVideoSource_ is the CUvideosource param

Затем нам нужно создать экземпляр VideoDecoder класс, который занимает CUVIDEOFORMATМы можем иметь это CUVIDEOFORMAT от CUvideosource как это:

//oFormat is the CUVIDEOFORMAT we want to get
cuvidGetSourceVideoFormat(hVideoSource_, &oFormat, 0);

Здесь проблема у меня есть CUvideosource из входного файла, но на самом деле мне нужно получить это из кадров, которые я получаю из сокета.

Также я могу заполнить CUVIDEOFORMAT поля вручную, так как я знаю тип кодека, который мне нужен, но я не знаю, как я могу заполнить codec_width а также codec_height поля. ранее я использовал ffmpegavcodec_decode_video2 Функция, чтобы получить эти размеры, но я думаю, что должен быть другой путь.

Я прочитал эту тему, и она объясняет, как я могу получить парсер (CUvideoparser) из пакетов, но до сих пор не могу получить CUVIDEOFORMAT,

Так что вопрос в том, есть ли эквивалент для cuvidCreateVideoSource использовать с пакетами не путь к файлу? Или функция, чтобы получить codec_width а также codec_height из пакета?

0 ответов

Другие вопросы по тегам