AGR*_*AGR 6 python video stream video-streaming
我正在开发一个脚本来下载在线直播视频.
print "Recording video..."
response = urllib2.urlopen("streaming online video url")
filename = time.strftime("%Y%m%d%H%M%S",time.localtime())+".avi"
f = open(filename, 'wb')
video_file_size_start = 0
video_file_size_end = 1048576 * 7 # end in 7 mb
block_size = 1024
while True:
try:
buffer = response.read(block_size)
if not buffer:
break
video_file_size_start += len(buffer)
if video_file_size_start > video_file_size_end:
break
f.write(buffer)
except Exception, e:
logger.exception(e)
f.close()
Run Code Online (Sandbox Code Playgroud)
上面的脚本工作正常,可以从实时流媒体内容下载7Mb的视频,并将其存储到*.avi文件中.
但是,我想下载10秒的视频而不管文件大小,并将其存储在avi文件中.
我尝试了不同的可能性但没有成功.
任何人都可以在这里分享你的知识来解决我的问题.
提前致谢.
我认为如果不不断分析视频就没有任何方法可以做到这一点,这将是非常昂贵的。因此,您可以猜测您需要多少 MB,完成后检查它是否足够长。如果太长,就剪掉它。您还可以建立一些关于需要检索多少的统计数据,而不是猜测。您还可以将 while True 替换为:
start_time_in_seconds = time.time()
time_limit = 10
while time.time() - start_time_in_seconds < time_limit:
...
Run Code Online (Sandbox Code Playgroud)
这应该为您提供至少 10 秒的视频,除非连接花费太多时间(然后少于 10 秒)或服务器发送更多内容进行缓冲(但这对于实时流来说不太可能)。
归档时间: |
|
查看次数: |
13968 次 |
最近记录: |