我需要编写一个能够显示视频的小软件。 我不知道有关C图形的任何事情。
有哪些课程? 请指出我的起点。
谢谢, 内厄姆
答案 0 :(得分:2)
我对C
的图形知之甚少
我强烈建议你先学习这个,否则你会很难做到这一点。
无论如何:写一个表现很好的视频播放器并不是一件容易的事。幸运的是,Linux有很多可用的多媒体软件包:
所有这些都可以嵌入到您自己的程序中。我个人推荐使用libxine或ffmpeg库,因为这些是最实用和最直接的恕我直言。 GStreamer在纸上看起来不错,但在稳定性方面存在问题(根据我的经验)。
答案 1 :(得分:2)
对于仅具有固定时间间隔的视频帧的显示,最简单的方法是使用像Qt这样的漂亮图形工具包。这将为您提供定时器,将视频绘制到屏幕等所需的工具。
如果您计划解码压缩视频源(如H.264,MPEG-2等),您需要查看Qt Phonon multimedia framework,直接使用GStreamer,或者可能使用ffmpeg库来解压缩视频流然后用你的播放器框架将它们绘制到屏幕上。
答案 2 :(得分:2)
用于显示视频的另一个simple library是 OpenCV (跨平台):
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;
}
就是这样。但是,您无法使用OpenCV播放声音,只能播放视频。但如果您正在寻找解决方法,here is a little something I wrote前一段时间使用OpenCV和FFmpeg。