2014-09-21 137 views
0

你好,我过去曾使用这段代码来制作视频。现在它不再工作了这是一个示例代码:我使用*'MJPG'*'XVID'总是具有相同的结果。请帮助。这些文件是非常小(40帧文件16K)opencv2没有正确创建视频

import numpy as np 
    import cv2 
    import glob 
    import sys 
    import cv2.cv as cv 
    file_listr = glob.glob(sys.argv[1]+'*.png') 
    #~ file_listg = glob.glob(sys.argv[1]+'./*w525_norm.*') 
    file_listr.sort() 
    #~ file_listg.sort() 
    r = cv2.imread(file_listr[0],0) 
    print r.shape 
    #~ print file_listr 
    print file_listr[0][:-4]+'.avi' 
    video = cv2.VideoWriter('testout.avi',cv.CV_FOURCC(*'MP43'),1,r.shape) 

    for i in range(len(file_listr)): 
     r = cv2.imread(file_listr[i]) 
     #~ g = cv2.imread(file_listg[i],0) 
     #~ print r.dtype 
     #~ g = np.zeros(r.shape).astype(r.dtype) 
     #~ b = np.zeros(r.shape).astype(r.dtype) 

     if sys.argv[2] == 'r': 
      cv2.imshow('RGB',r)#np.dstack((b,g,r))) 
      cv2.waitKey(100) 
     elif sys.argv[2] == 'w': 
      video.write(r)#np.dstack((b,g,r))) 


    video.release() 
    cv2.destroyAllWindows() 

这是mplayer的ouptut(VLC也不管用):喜欢的事,已经重挫您libvdpau库

AVI file format detected. 
[aviheader] Video stream found, -vid 0 
AVI: Missing video stream!? Contact the author, it may be a bug :(
libavformat file format detected. 
[lavf] stream 0: video (mpeg4), -vid 0 
VIDEO: [MP4V] 612x812 24bpp -nan fps 0.0 kbps (0.0 kbyte/s) 
Clip info: 
encoder: Lavf54.20.4 
Load subtitles in ./ 
Failed to open VDPAU backend libvdpau_i965.so: cannot open shared object file: No such file or directory 
[vdpau] Error when calling vdp_device_create_x11: 1 
========================================================================== 
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family 
libavcodec version 54.35.0 (external) 
Unsupported AVPixelFormat 53 
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4) 
========================================================================== 
Audio: no sound 
Starting playback... 
V: 0.0 0/ 0 ??% ??% ??,?% 0 0 


Exiting... (End of file) 
+0

你在哪个平台上? – rsaxvc 2015-11-05 04:50:35

回答

0

看起来,并可能还有其他媒体相关的图书馆。

你最近有没有更改过你的回购协议?

如果是这样,你应该可以通过卸载的mplayer,VLC,或者使用其他媒体程序,恢复到以前的回购协议来解决这个问题,然后重新安装媒体播放器。 FWIW,mplayer在做这类事情方面享有盛誉,尽管其他程序也可能会产生这种依赖性问题。

如果你最近没有改变你的回购协议,我想这样的事情通过你现有的媒体播放器定期升级,或者新媒体节目的安装还是可以的,虽然你的包管理器应该有警告你是否必须卸载任何库。

我当然不是这个话题的专家;希望有人会看到你的问题。但是几个月前,当我测试了一些不稳定的回购站时,我遇到了类似的情况:我失去了使用vlc的功能,我必须卸载它,然后恢复我的回购站以重新运行。那是一个可怕的日子!

+0

Mplayer不是问题。它是opencv2。其他每一个视频文件都可以工作(并且它没有足够的空间来容纳应该在那里的数据)。至少它似乎是这样的:(。 – 2014-09-22 21:24:49