在opencv3python2.7中打开ffmpeg/mpeg4 avi

2024-10-03 19:29:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法在openCV中打开mpeg4视频文件。视频文件是使用以下命令在ffmpeg中生成的:

ffmpeg -y -f rawvideo -vcodec rawvideo -s 2048x2048 -r 30 -pix_fmt gray -i \\.\pipe\pipe1 -qv 5 -vcodec mpeg4 out.avi

现在我试着像这样打开文件

^{pr2}$

但这返回:错误,没有

如果我使用libxvid进行编码,同样的过程可以正常工作,但是我想使用mpeg4,因为它编码更快(我需要同时编码多个流)。在

openCV应该能够打开mpeg4编码的avi文件吗?在

我在Windows64位下使用openCV3和Python2.7

我还附加了一个视频编码在xvid(左)的GSpot面板,我可以打开。还有一个mpeg4编码的视频(右),我无法打开。 enter image description here 我怀疑某些LAV分路器/解码器设置可能会干扰?!-但我对这件事的理解还不够深入。在

这是我对mpeg4文件的ffprobe输出,该文件使用附加的ffmpeg参数'-vtag xvid'编码,如Mulvya的一条评论中所建议的

  ffprobe version N-75474-g74e4948 Copyright (c) 2007-2015 the FFmpeg developers
  built with gcc 4.9.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
  libavutil      55.  2.100 / 55.  2.100
  libavcodec     57.  3.100 / 57.  3.100
  libavformat    57.  2.100 / 57.  2.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6.  6.100 /  6.  6.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.100 /  2.  0.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, avi, from 'out1b.avi':
  Metadata:
    encoder         : Lavf57.2.100
  Duration: 00:00:23.50, start: 0.000000, bitrate: 2049 kb/s
    Stream #0:0: Video: mpeg4 (Simple Profile) (xvid / 0x64697678), yuv420p, 2048x2048 [SAR 1:1 DAR 1:1], 2044 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc

Tags: 文件编码视频enableopencvffmpeg视频文件ffprobe
2条回答

或者你也可以做一些我碰巧想到的事情:

首先,您当然知道opencvex:2.4.11的版本

然后转到C:\opencv\build\x86\vc12\bin,复制opencv_ffmpeg2411.dll,并将其粘贴到Python ex:C:\Python27的根目录中

**如果dll文件是opencv_ffmpeg.dll只有在没有版本的情况下,您应该自己键入opencv_ffmpeg(没有dots的版本).dll

你好。在

希望我帮了忙

尝试将-vtag xvid作为输出选项添加到ffmpeg命令中

codec标记告诉播放器/处理器要将哪个解码器用于输入视频流。尽管XVid和MPEG4是同一个编解码器的编码器,但OpenCV可能无法识别标记为mpeg4的视频。在

相关问题 更多 >