C 在Linux上显示视频

C 在Linux上显示视频,c,linux,video,C,Linux,Video,我需要写一个小软件,将显示视频。 我对C的图形学一无所知 有什么课? 请给我指一个起点 谢谢, 那鸿 我对C语言的图形一无所知 我强烈建议你先学这个,否则你会很难做到的 无论如何:编写一个性能良好的视频播放器不是一个小壮举。幸运的是,Linux有现成可用的多媒体软件包: 利巴欣 ffmpeg库(libavformat、libavdevice、libavcodec和libswscale)——由mplayer使用 VLC GStreamer 所有这些都可以嵌入到您自己的程序中。就我个人而言,我推

我需要写一个小软件,将显示视频。 我对C的图形学一无所知

有什么课? 请给我指一个起点

谢谢, 那鸿

我对C语言的图形一无所知

我强烈建议你先学这个,否则你会很难做到的

无论如何:编写一个性能良好的视频播放器不是一个小壮举。幸运的是,Linux有现成可用的多媒体软件包:

  • 利巴欣
  • ffmpeg库(libavformat、libavdevice、libavcodec和libswscale)——由mplayer使用
  • VLC
  • GStreamer

所有这些都可以嵌入到您自己的程序中。就我个人而言,我推荐libxine或ffmpeg库,因为它们是最可靠和最直接的使用方法。GStreamer在纸上看起来不错,但在稳定性方面有问题(以我的经验)。

对于固定时间间隔的视频帧显示,最简单的方法可能是使用一个很好的图形工具包,如。这将为您提供必要的工具,以有一个计时器,绘画视频到屏幕上,等等

如果您计划对压缩视频源(如H.264、MPEG-2等)进行解码,您将需要查看,直接使用GStreamer,或者可能使用ffmpeg库来解压缩视频流,然后使用播放器的框架将其绘制到屏幕上。

另一个用于显示视频的是(跨平台):


就是这样。。但是,你不能用OpenCV播放声音,只能播放视频。但是如果你想解决这个问题,那就在不久前使用OpenCV和FFmpeg。

我想你是在找库,而不是类!谢谢。我如何使用OpenCV逐帧显示(我使用UDP接收到的)?您想做什么?显示视频文件、显示网络上摄像头的视频或显示某种类型的视频?但第一步是从该连接检索数据流并将其转换为有用的OpenCV数据(
IplImage
)。
int main(int argc, char** argv) 
{
    cvNamedWindow("xsample", CV_WINDOW_AUTOSIZE);

    CvCapture* capture = cvCreateFileCapture("movie.avi");
    if (!capture)
    {
      printf("!!! cvCreateFileCapture didn't found the file !!!\n");
      return -1; 
    }

    IplImage* frame;
    while(1) 
    {
        frame = cvQueryFrame( capture );
        if (!frame) 
            break;

        cvShowImage( "xsample", frame );

        char c = cvWaitKey(33);
        if (c == 27) 
            break; // ESC was pressed
    }

    cvReleaseCapture(&capture);
    cvDestroyWindow("xsample");

    return 0;
}