【发布时间】:2014-08-26 19:18:41
【问题描述】:
我有一个包含视频的远程文件夹。视频正在不断上传中。
例如:
[1].avi
[2].avi
[3].avi
[4].avi
我希望能够尽可能接近实时地流式传输这些视频(使用 rtsp 或类似的东西)
在这种情况下,我可以开始流式传输 2,然后是 3,依此类推...并检查文件夹是否有更新。
我已经完成了一个 python 脚本,它允许我使用 OpenCV (cv2) 一个接一个地重现所有这些视频,而不会注意到它们之间的变化。但我仍然不知道如何制作流媒体。
import numpy as np
import collections
import cv
import os
__FRAMES_PER_SECOND = 10.0
def find_between( s, first, last ):
try:
start = s.index( first ) + len( first )
end = s.index( last, start )
return s[start:end]
except ValueError:
return ""
def play(file):
vidFile = cv.CaptureFromFile(file)
nFrames = int( cv.GetCaptureProperty( vidFile, cv.CV_CAP_PROP_FRAME_COUNT ) )
fps = cv.GetCaptureProperty( vidFile, cv.CV_CAP_PROP_FPS )
waitPerFrameInMillisec = int( 1/__FRAMES_PER_SECOND * 1000/1 )
for f in xrange( nFrames ):
frameImg = cv.QueryFrame( vidFile )
cv.ShowImage( "My Video Window", frameImg )
cv.WaitKey( waitPerFrameInMillisec )
directory = "vids/"
dictFiles = {}
arrFiles = []
for root, dirs, files in os.walk(directory):
#print root
#print dirs
arrFiles = files
for file in arrFiles:
number = find_between(file, "[", "]")
#print "----------",file
dictFiles[number] = file
orderedDictFiles = collections.OrderedDict(sorted(dictFiles.items()))
for file in orderedDictFiles:
play(directory + orderedDictFiles[file])
【问题讨论】:
标签: python node.js streaming video-streaming live-streaming