云迈博客

您现在的位置是:首页 > 其他 > 正文

其他

ffmpeg 获取视频截图、时长等信息

wsinbol2021-05-19其他181
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版本

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~