oct*_*cti 0 opencv directshow ffmpeg cmake
所以我正在尝试使用openCV videoWriter编写视频:
writer=cv.CreateVideoWriter(path+"test_output.avi",-1,fps,(W,H),1)
Run Code Online (Sandbox Code Playgroud)
因此,不是提供我提供的FOURCC -1,而是为了查看我可用的编解码器.结果是Microsoft RLE,Microsoft Video 1,Intel YUV和Uncompressed.
原因是当使用CMAKE为Visual Studio 10 x64配置openCV时,这就是我在视频i/o中所拥有的:视频I/O:DirectShow
有没有办法将其切换到FFMPEG?我知道ffmpeg dll存在于\ 3dparty\ffmpeg中.我找了Cmake FFMPEG标志,但没有找到任何标志.奇怪的是在视频部分下的opencv根目录中的CmakeLists.txt中:
if(UNIX AND NOT APPLE)
<FFMPEG stuff>
elseif(WIN32)
status(" Video I/O:" HAVE_VIDEOINPUT THEN DirectShow ELSE NO)
endif()
Run Code Online (Sandbox Code Playgroud)
所以在我看来opencv自动切换到DirectShow并且不允许使用FFMpeg.或者更确切地说,可以升级Driectshow以支持其他格式,如Divx或h264?有任何想法吗?
您寻找的答案就在这里,它适用于32位和64位配置.我使用了这个FFMPEG版本.http://ffmpeg.zeranoe.com/builds/win64/dev/ffmpeg-git-1aeb88b-win64-dev.7z
1)下载OpenCV 2.3
2)打开根CMakeLists.txt并插入行集(HAVE_FFMPEG 1)
3)下载http://ffmpeg.zeranoe.com/builds/win64/dev/ffmpeg-git-1aeb88b-win64-dev.7z(如果您喜欢它,可以下载32位版本)
4)使用#define INT64_C编辑ffmpeg include dir中的avformat.h
5)使用#define snprintf _snprintf从highgui项目编辑cap_ffmpeg_impl.hpp
6)在C/C++下的highgui项目属性中>附加包含目录添加刚刚下载的FFMPEG包含目录的路径
7)在Linker> General> Additional Library Dependencies下的同一属性页面上,添加刚刚下载的FFMPEG的lib目录的路径
8)在链接器>输入>附加依赖项下的同一属性页面上添加lib中找到的ffmpeg库的所有名称(avformat.lib,avscale.lib,avcore.lib等)
9)建立highgui项目
10)将FFMPEG附带的.dll文件的路径添加到System Path环境变量中.
而已!10个简单的步骤;)
| 归档时间: |
|
| 查看次数: |
19412 次 |
| 最近记录: |