OpenCV中如何播放avi文件的音频
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV中如何播放avi文件的音频相关的知识,希望对你有一定的参考价值。
OpenCV中能播放avi视频,但是没有声音,如何提取出avi文件中的音频来播放?
如果你一定要用OpenCV来播图像,那么声音可以用OpenAL,因为OpenCV没有播放音频功能。或者可以采用directshow播放视频和音频 参考技术A OpenCV对avi文件的兼容性不好。可以用其他第三方播放器来播放。如:暴风影音或影音之星打开.avi格式的视频。windows本身的媒体播放器也可以打开avi格式文件。AVI是将语音和影像同步组合在一起的文件格式。它对视频文件采用了一种有损压缩方式,但压缩比较高,因此尽管面面质量不是太好,但其应用范围仍然非常广泛。
在 OpenCV 中播放 AVI 文件
【中文标题】在 OpenCV 中播放 AVI 文件【英文标题】:Playing AVI files in OpenCV 【发布时间】:2010-07-15 03:05:47 【问题描述】:我似乎无法使用 OpenCV 播放我的 avi 文件。我在 Mac 上,文件与 Quicktime 和 VLC 播放器一起使用。我曾尝试使用 mencoder 将其转换为 i420,但仍未成功。没有出现错误消息,似乎程序自动关闭,我不知道如何调试它。
int main(int argc, char* argv[])
cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateFileCapture( argv[1] );
IplImage* frame;
while(1)
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "Example2", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
cvReleaseCapture( &capture );
cvDestroyWindow( "Example2" );
【问题讨论】:
当您在调试器中单步执行它时,它在哪里中止? 它什么也没说。它只是正常退出。 您确定作为命令行参数提供的文件名正确吗?尝试添加检查以确保文件确实存在。如果不是,则产生错误。 我会加一张支票看看。谢谢! 【参考方案1】:好吧,由于您的代码缺少错误检查,因此 cvCreateFileCapture() 可能存在问题,直到您检查函数的返回时您才会知道。
无论如何,您应该在此处删除或添加此语句的调试:
if( !frame ) break;
因为如果在检索文件的第一帧时出现问题,您的应用程序会简单地放弃并静默退出,给您“什么都没有发生”的感觉。
将其更改为:
if (!frame) printf("Uow, huge fail!\n"); break;
但最重要的是:你为什么不使用 cvCaptureFromAVI() ? 看看这个:http://nashruddin.com/How_to_Play_AVI_Files_with_OpenCV
【讨论】:
我也尝试过这种方法,但我肯定会把调试信息放进去看看。谢谢! 我遇到了同样的问题。未正确检索第一帧。但是,我使用教科书提供的test.avi和tree.avi文件进行测试。这里有什么问题? 我不知道@Kalla。我得看看你的源代码。很多事情可能是错误的。问一个问题,然后用我的名字发表评论,这样我就可以关注你了。以上是关于OpenCV中如何播放avi文件的音频的主要内容,如果未能解决你的问题,请参考以下文章
opencv视频播放不了的问题是如何解决的?播放时一闪而过。
如何在 Java 中使用 openCV 的 VideoCapture 方法打开和处理 .mpeg 或 .avi 等视频文件