小编Sau*_*dhi的帖子

使用 vlc 的快照(在 RAM 上获取快照)

我计划使用 vlc 库来解码基于 H.264 的 RTSP 流并从中提取每一帧(将 vlc 图片转换为 IplImage)。我对 vlc 代码进行了一些探索,并得出结论,有一个名为 libvlc_video_take_snapshot 的函数执行类似的操作。然而,在这种情况下捕获的帧保存在硬盘上,由于我的应用程序的实时性,我希望避免这种情况。什么是最好的方法来做到这一点?是否可以不修改 vlc 源代码(如果可能,我想避免重新编译)。我听说过 vmem 等,但无法真正弄清楚它的作用以及如何使用它。

图片_t 结构是库内部的,我们如何才能访问它。等待你的回复。

PS 早些时候我尝试使用 FFMPEG 执行此操作,但是 ffmpeg 库在 Windows 上解码基于 H.264 的 RTSP 流时存在很多问题,因此我不得不切换到 VLC。

问候, 索拉布·甘地

opencv h.264 libvlc

5
推荐指数
0
解决办法
1027
查看次数

无法使用 Live555 代理服务器流式传输 RTSP

我正在将 Live555 流媒体用于记录和重新传输来自 IP 摄像机的 RTSP 流的应用程序。为此,我使用 openRTSP 进行录制,并使用 live555 代理服务器重新传输摄像机流。对于一些摄像机,我们面临一个奇怪的问题,其中摄像机记录成功发生,但是 live555 代理服务器无法为同一摄像机流生成新流(详细输出转储中没有失败的迹象,但是代理服务器生成的 rtsp url 无法被 rtsp 客户端解码)。由于我对 live555 代理服务器的详细信息一无所知,因此我一直无法解决这个问题。我尝试使用 VLC 流式传输相同的相机流,效果很好。这可能有什么问题。我特此附上详细输出以供参考。

E:\...\live\proxyServer>live555ProxyServer.exe -V rtsp://10.17.10.67/ch0_unicast_firststream
LIVE555 Proxy Server
        (LIVE555 Streaming Media library version 2012.05.17)

Opening connection to 10.17.10.67, port 554...
RTSP stream, proxying the stream "rtsp://10.17.10.67/ch0_unicast_firststream"
        Play this stream using the URL "rtsp://10.17.1.150/proxyStream"

(We use port 8000 for optional RTSP-over-HTTP tunneling.)
...remote connection opened
Sending request: DESCRIBE rtsp://10.17.10.67/ch0_unicast_firststream RTSP/1.0
CSeq: 2
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2012.05.17)
Accept: application/sdp


Received …
Run Code Online (Sandbox Code Playgroud)

udp tcp vlc rtsp live555

5
推荐指数
1
解决办法
5788
查看次数

OpenCV函数将8U图像转换为16U

任何人是否知道在OpenCV的支持的任何功能8U,以16U转换?我尝试过cvConvertImage,cvConvertScale但它们都只适用于8U图像格式.

opencv image image-processing

3
推荐指数
1
解决办法
3212
查看次数

使用OpenCV数据结构时堆积损坏

我正在使用带有代码块的OpenCV 2.1(mingw下的gcc).在我的代码中,我正在尝试(出于某种理智的原因)直接访问IplImage数据结构中的imagedata.请参阅代码段以获取更多详细信息:

int main(void)
{
    IplImage* test_image = cvLoadImage("test_image.bmp",CV_LOAD_IMAGE_GRAYSCALE);
    int mysize = test_image->height * test_image->widthStep;
    char* imagedata_ptr = NULL;

    int i   =   0;    
    imagedata_ptr = test_image->imageData;

    char* temp_buff = (char *)malloc(sizeof(mysize));
    memcpy(temp_buff,imagedata_ptr,mysize);

    free(temp_buff);
}
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,它崩溃了.在调试模式下运行它会生成SIGTRAP是由于堆损坏.起初我怀疑这可能是编译器相关的问题,因此尝试在Visual Studio中运行相同的代码.但它仍然崩溃.这就是我认为它可能是OpenCV相关问题的原因.

注意:没有其他程序打开的实例,这是我正在运行的唯一代码,此处没有执行任何线程等.

等待你的评论.

问候,

Saurabh Gandhi

c gcc opencv mingw

1
推荐指数
1
解决办法
798
查看次数

标签 统计

opencv ×3

c ×1

gcc ×1

h.264 ×1

image ×1

image-processing ×1

libvlc ×1

live555 ×1

mingw ×1

rtsp ×1

tcp ×1

udp ×1

vlc ×1