转换工具层出不穷,ffmpeg才是全能的转换工具,只是不支持图形操作。
没有关系,命令行方式,在freebsd/linux下直接来
我们的思路是,设定一个文件夹存放源视频文件,python读取该文件夹下的全部文件,并对文件通过ffmpeg进行分析,根据需要,修改目标文件的编码、分辨率等等,调用ffmpeg转换。
我这次的需求是,我家液晶电视只支持分辨来,长宽均小于720,编码只支持divx/xvid的avi文件,且fps只能小于25——多次实践,才总结出来的,电视说明书也没说!!
下面的程序将
/root//root2/video/origin
下存在的全部文件转换成液晶电视需要的avi格式电影
以下是最新的修改,引入了OptionParser 参数分析工具。能指定最大宽度,音视频编码,视频质量,原路径,目的路径,工作路径等
# coding=gb2312 import string import os import time import re import sys from optparse import OptionParser parser = OptionParser() #parser.add_option("-i", "--input", dest="input",action="store_true",help="input x y for each file by user") parser.add_option("-q", "--quality", dest="q",action="store",help="input xvid q arg",default="24") parser.add_option("-v", "--vcodec", dest="vcodec",action="store",help="input video codec",default="x264") parser.add_option("-n", "--noaudio", dest="an",action="store_true",help="no audio") parser.add_option("-p", "--preset", dest="preset",action="store",help="",default="") parser.add_option("-m", "--maxWidth", dest="maxWidth",action="store",help="input max width for output video",default="") parser.add_option("-f", "--fileType", dest="fileType",action="store",help="",default="mp4") parser.add_option("-o", "--ogg", dest="ogg",action="store_true",help="user ogg instead of aac",default="") parser.add_option("-3", "--mp3", dest="mp3",action="store_true",help="user mp3 instead of aac",default="") parser.add_option("-1", "--pad", dest="pad",action="store_true",help="pad to 16:9",default="") parser.add_option("-s", "--src", dest="srcD",action="store",help="source dir",default="/usr/disk2/root/video/origin") parser.add_option("-t", "--target", dest="targetD",action="store",help="target dir",default="/usr/disk2/root/video/ok") parser.add_option("-w", "--workdir", dest="workdir",action="store",help="work dir",default="/root/root2/video") (options, args) = parser.parse_args() if options.srcD==None or options.srcD[0:1]=='-': print 'srcD Err, quit' exit() if options.targetD==None or options.targetD[0:1]=='-': print 'targetD Err, quit' exit() if options.fileType==None or options.fileType[0:1]=='-': print 'fileType Err, quit' exit() if options.workdir==None or options.workdir[0:1]=='-': print 'workdir Err, quit' exit() #遍历origin下的文件 for root,dirs,files in os.walk(options.srcD): for name in files: name= name.replace('[','''\[''')#对文件名中的[进行转义 newname =name[0: name.rindex('.')] #运行一次ffmpeg,获取分辨率 (si, so, se) = os.popen3('cd '+options.workdir+';mkdir -p ffm; rm -f ffm/ffm.txt ; csh -c "(ffmpeg -i '+options.srcD+'/' +name+ ' >& ffm/ffm.txt)"; grep Stream ffm/ffm.txt') t=so.readlines() ti=0 for line in se.readlines() : print line width=0 height=0 reg='''^\s*Stream.*,\s*(\d+)x(\d+)("pad='+str(height*16/9)+':'+str(height)+':'+str((height*16/9 - width)/2)+':0:black"' elif width - height*16/9 >10:#高度不够 padStr=' -vf "pad='+str(width)+':'+str(width*9/16)+':0:'+str((width - height*16/9)/2)+':black"' s=' -s '+str(width)+'x'+str(height)+padStr print 'adjust',s if options.preset!='': vpre=' -vpre '+options.preset if options.an==True: astr=' -an' elif options.ogg==True: astr=' -acodec libvorbis -ar 44100 -ab 64K' elif options.mp3==True: astr=' -acodec libmp3lame -ar 44100 -ab 64K' else: astr=' -acodec libfaac -ar 44100 -ab 64K' if options.vcodec=='vp8': vc='libvpx' qstr=" -qmin "+options.q+" -qmax "+options.q elif options.vcodec=='x264': vc='libx264' qstr=" -crf "+options.q elif options.vcodec=='xvid': vc='libxvid' qstr=" -qmin "+options.q+" -qmax "+options.q cmd ='csh -c "' + "cd "+options.workdir+";touch ffm/output.log;(ffmpeg -y -i "+options.srcD+"/"+name+astr+" -vcodec "+vc+vpre+qstr+s+" -r 25 -threads 8 "+options.targetD+"/"+newname+"."+options.fileType + ' & ffm/output.log)"' print cmd #运行 (si, so, se) = os.popen3(cmd) for line in se.readlines() :#打印输出 print line for line in so.readlines() :#打印输出 print line #print cmd,' finish'#再显示一次命令
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]