ffmpeg 获取视频截图、时长等信息
CLI版本˃ffmpeg-i[video.mp4]-ss00:00:01or1-frames:v1[output.jpg]-y(强制覆盖)Python版本``
CLI 版本
获取第一秒的帧:
ffmpeg -i [video.mp4] -ss 00:00:01or1 -frames:v 1 [output.jpg] -y(强制覆盖)
获取网络地址的指定帧:
ffmpeg -i http://qnshilv.lq1008.xyz/uploads/20201123/luPLLR5C7yJY2-O_S1TdhbkEQHrU.mp4 -ss 00:00:03 -frames:v 1 e.jpg
获取视频时长:
ffprobe -i http://qnshilv.lq1008.xyz/uploads/20201123/luPLLR5C7yJY2-O_S1TdhbkEQHrU.mp4 -show_format -v quiet | sed -n ‘s/duration=//p’
Python 版本
import os
import sys
import xlwt
from moviepy.editor import VideoFileClip
file_dir = u"./video/9fb450c04be1517da8a1bf3de489b002.mp4" #定义文件目录
class FileCheck():
def __init__(self):
self.file_dir = file_dir
def get_filesize(self,filename):
u"""
获取文件大小(M: 兆)
"""
file_byte = os.path.getsize(filename)
return self.sizeConvert(file_byte)
def get_file_times(self,filename):
u"""
获取视频时长(s:秒)
"""
clip = VideoFileClip(filename)
file_time = self.timeConvert(clip.duration)
return file_time
def sizeConvert(self,size):# 单位换算
K, M, G = 1024, 1024**2, 1024**3
if size >= G:
return str(size/G)+'G Bytes'
elif size >= M:
return str(size/M)+'M Bytes'
elif size >= K:
return str(size/K)+'K Bytes'
else:
return str(size)+'Bytes'
def timeConvert(self,size):# 单位换算
M, H = 60, 60**2
if size < M:
return str(size)+u'秒'
if size < H:
return u'%s分钟%s秒'%(int(size/M),int(size%M))
else:
hour = int(size/H)
mine = int(size%H/M)
second = int(size%H%M)
tim_srt = u'%s小时%s分钟%s秒'%(hour,mine,second)
return tim_srt
def get_all_file(self):
u"""
获取视频下所有的文件
"""
for root, dirs, files in os.walk(file_dir):
return files #当前路径下所有非目录子文件
if __name__ == '__main__':
f = FileCheck()
print(f.get_file_times(file_dir))
PHP版本
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~