С веб-камерой USB все в порядке, но я хочу использовать «виртуальную камеру» с именем «无 他 伴侣 (竖 屏)», чье видео со смартфона, например, Android или iOS. Подключите телефон к P C, запустите приложение на телефоне, затем запустите клиентское приложение P C, которое может просматривать видео. Приложение телефона называется "无 无 相机", а приложение P C называется "无 他 伴侣", его веб-сайт https://www.wuta-cam.com/.
. Я запускаю FFmpeg на Windows Командная строка с командой ffmpeg -list_devices true -f dshow -i dummy
, список устройств в порядке. (Чтобы правильно отобразить китайский язык, заранее запустите chcp 65001
.)
Запустите команду ffplay -f dshow -i video="无他伴侣(竖屏)"
, все в порядке. Воспроизведите видео. (Конечно, вам необходимо заранее подтвердить, что его клиент P C предварительно просматривает.)
Теперь я хочу получить декодированные кадры с этой виртуальной камеры в моей программе, я звоню avformat_open_input()
с video=无他伴侣(竖屏)
это не удалось, возвращаемое значение -5, ошибка ввода / вывода.
Кто-нибудь знает причину? Пожалуйста помоги. Заранее спасибо.
Ниже приведен мой фрагмент кода.
avdevice_register_all();
avcodec_register_all();
//const char * url= "video=Logitech Webcam C930e";// This is fine.
char url[] = "video=无他伴侣(竖屏)";// This is bad.
AVFormatContext *pFmtCtx = avformat_alloc_context();
AVInputFormat *iformat = av_find_input_format("dshow");
int nRet = 0;
nRet = avformat_open_input(&pFmtCtx, url, iformat, NULL);
if (nRet)
{
const size_t buffer_size = 256;
char err_description[buffer_size];
av_strerror(nRet, err_description, buffer_size);
printf("%s.\n", err_description);// --> I/O error.
printf("FAILED to open input.(Line:%d,%d)\n", __LINE__, nRet);
return -1;
}