热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python视频压缩算法_Python到时间自动压缩视频

由于工作需要,每天有大量的视频需要压缩转码某一天为了更好的需求,中午也要去,这尼玛直接写一个脚本给我做,就行了,好歹我们也学了点代码之类的工具啥的,就是

由于工作需要,每天有大量的视频需要压缩转码

某一天为了更好的需求,中午也要去,这尼玛 直接写一个脚本给我做,就行了,好歹我们也学了点代码之类的工具啥的,就是干

说干,我们就来先说说思路,首先是要在规定的时间,做事情( 运行代码压缩视频 )

#计算时间得到秒

def howManySecondsBefore(now , atTime):

d1 = datetime.datetime(now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec)

#根据输入的参数,返回一个datetime对象

d2 = datetime.datetime(atTime.tm_year, atTime.tm_mon, atTime.tm_mday, atTime.tm_hour, atTime.tm_min, atTime.tm_sec)

second = (d2 - d1).seconds

return second

#开始运行

def start():

#1.得到当前的详细时间

currentTime = time.localtime()

#2.根据当前的时间拿到想要的时间 为下午的一点钟

wantTime = "%d-%d-%d 12:07:00" %(currentTime.tm_year, currentTime.tm_mon, currentTime.tm_mday)

#3.目标执行的时间

targetTime = time.strptime(wantTime, '%Y-%m-%d %X')

#4.离运行时间的秒

waitTimeSecond = howManySecondsBefore(currentTime, targetTime)

#5.睡眠等到要执行的时间

time.sleep(waitTimeSecond)

#6.睡nmb, 起来high

High()

然后怎么High了,我们默认是将视频放在一个文件夹里面,路径当然是绝对的,但是为了以后运用,写一个相对的也可以

#开始high

def High():

#.检查有没有视频后缀为.mp4 ,搜索路径

videoPath = GetDesktopPath() + "/视频"

#得多所有视频的路径 这里得到的是一个元祖,并且第二个是一个字符串

tuple2 = GetFileWith(videoPath)

#拿到所有的路径,并且是list

allVideoPath = tuple2[1].split("\n")

if len(allVideoPath) > 0:

#转换

CompressionTranscoding(allVideoPath)

+废话不多说, 直接上全部代码

#coding=utf-8

import os

import sys

import subprocess

import commands

#时间

import time

import datetime

#根据一个路径获取路径下面有多少个视频路径

def GetFileWith(path):

command = "find %s -name *.mp4" %(path)

#执行shell 命令

allVideoPath = commands.getstatusoutput(command)

return allVideoPath

#得到当前用户的桌面路径

def GetDesktopPath():

return os.path.join(os.path.expanduser("~"), 'Desktop')

#创建文件夹 返回文件的路径

def createFolder():

currentTime = time.localtime()

#以当前日期创建文件夹

folderName = "%d%d压缩视频" %(currentTime.tm_mon, currentTime.tm_mday)

folderPath = GetDesktopPath() + '/' + folderName

createCommand = "mkdir %s" %(folderPath)

commands.getstatusoutput(createCommand)

return folderPath

#转换

def CompressionTranscoding(allVideoPath):

#创建文件夹,并得到路径

compressionVideoFolderPath = createFolder()

#遍历每个的路径,开始转换

for singlePath in allVideoPath:

if type(singlePath) is str:

#这里就开始进行转换了

#拿到本身的文件名 -1 是的到list的最后一个元素

videoName = singlePath.split("/")[-1]

# print videoName

#拼接压缩路径

videoCompressionPath = compressionVideoFolderPath + "/" + videoName

#shell 命令

command = "/usr/local/bin/ffmpeg -i %s -vcodec h264 -s 352*278 -r 6 %s " %(singlePath, videoCompressionPath)

#开启一个进程执行shell

p2 = subprocess.Popen(command,shell=True)

#等待

p2.wait()

#开始high

def High():

#.检查有没有视频后缀为.mp4 ,搜索路径

videoPath = GetDesktopPath() + "/视频"

#得多所有视频的路径 这里得到的是一个元祖,并且第二个是一个字符串

tuple2 = GetFileWith(videoPath)

#拿到所有的路径,并且是list

allVideoPath = tuple2[1].split("\n")

if len(allVideoPath) > 0:

#转换

CompressionTranscoding(allVideoPath)

#计算时间得到秒

def howManySecondsBefore(now , atTime):

d1 = datetime.datetime(now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec)

#根据输入的参数,返回一个datetime对象

d2 = datetime.datetime(atTime.tm_year, atTime.tm_mon, atTime.tm_mday, atTime.tm_hour, atTime.tm_min, atTime.tm_sec)

second = (d2 - d1).seconds

return second

#开始运行

def start():

#1.得到当前的详细时间

currentTime = time.localtime()

#2.根据当前的时间拿到想要的时间 为下午的一点钟

wantTime = "%d-%d-%d 13:09:00" %(currentTime.tm_year, currentTime.tm_mon, currentTime.tm_mday)

#3.目标执行的时间

targetTime = time.strptime(wantTime, '%Y-%m-%d %X')

print targetTime

#4.离运行时间的秒

runTimeSecond = howManySecondsBefore(currentTime, targetTime)

print runTimeSecond

#5.睡眠

time.sleep(runTimeSecond)

#6.睡nmb, 起来high

High()

if __name__ == "__main__":

start()

测试运行

好了,到下午一点,它就自己去转视频,我就不用去了,可以睡个午觉啥的



推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • tcpdump 4.5.1 crash 深入分析
    tcpdump 4.5.1 crash 深入分析 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • java drools5_Java Drools5.1 规则流基础【示例】(中)
    五、规则文件及规则流EduInfoRule.drl:packagemyrules;importsample.Employ;ruleBachelorruleflow-group ... [详细]
  • 本文介绍了一个Python函数same_set,用于判断两个相等长度的数组是否包含相同的元素。函数会忽略元素的顺序和重复次数,如果两个数组包含相同的元素,则返回1,否则返回0。文章还提供了函数的具体实现代码和样例输入输出。 ... [详细]
  • HashMap的扩容知识详解
    本文详细介绍了HashMap的扩容知识,包括扩容的概述、扩容条件以及1.7版本中的扩容方法。通过学习本文,读者可以全面了解HashMap的扩容机制,提升对HashMap的理解和应用能力。 ... [详细]
author-avatar
mobiledu2502892903
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有