我在 Qt 中创建了一个示例应用程序,我必须在 2x2 网格中显示相机流。我正在使用 libvlc 来播放流,并且也能够显示视频。但我面临几个问题
- Vlc 正在创建一个单独的窗口来渲染视频。它不显示在Qt应用程序提供的区域上。
这是我的代码
void playerView::createPlayer()
{
const char *const vlc_args[] = {
"--avcodec-hw=any",
"--plugin-path=C:\QtSDK\vlc-2.2.1\plugins" };
vlcinstance = libvlc_new(sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args);
const char* url = "rtsp://<camera ip>/cam0_0";
/* Create a new LibVLC media descriptor */
media = libvlc_media_new_location(vlcinstance, url);
// Create a media player playing environement
vlcmp = libvlc_media_player_new(vlcinstance);
libvlc_media_player_set_hwnd(vlcmp, (void*)videodisplay->winId());
libvlc_media_player_set_media(vlcmp, media);
libvlc_media_player_play (vlcmp);
}
-
由于我需要在 2x2 网格中显示 3 个视频,因此我创建了 3 个 vlc 播放器实例来播放视频。正在创建 2 个窗口并播放视频。在创建第三个时,它崩溃并出现以下错误。
directdraw vout 显示错误:Win32VoutCreateWindow RegisterClass FAILED (err=1410)
direct2d vout 显示错误:Win32VoutCreateWindow RegisterClass FAILED (err=1410)
警告:选项 --plugin-path 不再存在。
警告:选项 --plugin-path 不再存在。
警告:选项 --plugin-path 不再存在。
警告:选项 --plugin-path 不再存在。
警告:选项 --plugin-path 不再存在。
警告:选项 --plugin-path 不再存在。
[008ceb04] directdraw vout 显示错误:Win32VoutCreateWindow RegisterClass FAILED (err=1410)
[008ceb04] direct2d vout 显示错误:Win32VoutCreateWindow RegisterClass FAILED (err=1410)
glwin32 vout 显示错误:Win32VoutCreateWindow RegisterClass FAILED (err=1410)
wingdi vout 显示错误:Win32VoutCreateWindow RegisterClass FAILED (err=1410)
[008ceb04] glwin32 vout 显示错误:Win32VoutCreateWindow RegisterClass FAILED (err=1410)
[008ceb04] wingdi vout 显示错误:Win32VoutCreateWindow RegisterClass FAILED (err=1410)
核心vout显示错误:无法更改缩放比例
caca vout 显示错误:vout 显示 caca 中不支持查询
核心vout显示错误:无法设置在顶部
核心vout显示错误:无法更改源AR
[008ceb04]核心vout显示错误:无法更改缩放
[008ceb04] caca vout 显示错误:vout 显示 caca 中不支持查询
[008ceb04]核心vout显示错误:无法设置在顶部
[008ceb04]核心vout显示错误:无法更改源AR
核心vout显示错误:无法设置在顶部
[H264 Decoder @ 0387aee0]无效的混合IDR/非IDR帧无法在切片多线程模式下解码
[h264@038b8400]decode_slice_header错误
[h264@038b8400]decode_slice_header错误
[h264@038b8400]decode_slice_header错误
[h264@038b8400]decode_slice_header错误
[h264@038b8400]decode_slice_header错误
[h264@038b8400]decode_slice_header错误
[h264@038b8400]decode_slice_header错误
[h264@038b8400]decode_slice_header错误
[h264@038b8400]decode_slice_header错误
[h264@038b8400]decode_slice_header错误
[h264@038b8400]decode_slice_header错误
[h264@038b8400]decode_slice_header错误
[h264@038b8400]decode_slice_header错误
[H264解码器@038fd000]无效的混合IDR/非IDR帧无法在切片多线程模式下解码
[038c6544]核心vout显示错误:无法设置在顶部
核心输入错误:调用了 ES_OUT_RESET_PCR
核心输入错误:调用了 ES_OUT_RESET_PCR
[02c4264c]核心输入错误:调用了ES_OUT_RESET_PCR
[02c41a1c] 核心输入错误:调用了 ES_OUT_RESET_PCR
核心输入错误:调用了 ES_OUT_RESET_PCR
[h264 @ 038c3d00] 解码切片头错误
[h264 @ 038c3d00] 解码切片头错误
[H264解码器@0cb12c40]无效的混合IDR/非IDR帧无法在切片多线程模式下解码
[02c427b4]核心输入错误:调用了ES_OUT_RESET_PCR
错误与 GPU 有关,我不知道如何使用 libvlc 解决此问题。即使搜索也无助于找到正确的解决方案。
请给我一些线索来继续,因为我完全陷入困境!
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)