擅长:python、mysql、java
<p>找到了一个名为ffmpeg<a href="http://zulko.github.io/blog/2013/09/27/read-and-write-video-frames-in-python-using-ffmpeg/" rel="noreferrer">here</a>的解决方案,效果很好(对ffmpeg选项进行了一些小的更改):</p>
<pre><code>VIDEO_URL = WEBURL + "live/amba.m3u8"
cv2.namedWindow("GoPro",cv2.CV_WINDOW_AUTOSIZE)
pipe = sp.Popen([ FFMPEG_BIN, "-i", VIDEO_URL,
"-loglevel", "quiet", # no text output
"-an", # disable audio
"-f", "image2pipe",
"-pix_fmt", "bgr24",
"-vcodec", "rawvideo", "-"],
stdin = sp.PIPE, stdout = sp.PIPE)
while True:
raw_image = pipe.stdout.read(432*240*3) # read 432*240*3 bytes (= 1 frame)
image = numpy.fromstring(raw_image, dtype='uint8').reshape((240,432,3))
cv2.imshow("GoPro",image)
if cv2.waitKey(5) == 27:
break
cv2.destroyAllWindows()
</code></pre>
<p>仍在修改代码,因此欢迎任何建议。</p>