基于Python如何实现视频分辨率转换
发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,这篇文章主要为大家展示了"基于Python如何实现视频分辨率转换",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"基于Python如何实现视频分辨率转换"这篇
千家信息网最后更新 2024年09月21日基于Python如何实现视频分辨率转换
这篇文章主要为大家展示了"基于Python如何实现视频分辨率转换",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"基于Python如何实现视频分辨率转换"这篇文章吧。
环境依赖
ffmpeg环境安装,可以参考文章:windows ffmpeg安装部署
ffmpy安装:
pip install ffmpy -i https://pypi.douban.com/simple
代码
不废话上代码。
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/12/12 14:07# @Author : 剑客阿良_ALiang# @Site : # @File : video_tool.py import osimport uuidfrom ffmpy import FFmpeg # 调整视频大小def change_size(video_path: str, output_dir: str, width: int, height: int, bit_rate=2000): ext = os.path.basename(video_path).strip().split('.')[-1] if ext not in ['mp4']: raise Exception('format error') _result_path = os.path.join( output_dir, '{}.{}'.format( uuid.uuid1().hex, ext)) ff = FFmpeg(inputs={'{}'.format(video_path): None}, outputs={ _result_path: '-s {}*{} -b {}k'.format(width, height, bit_rate)}) print(ff.cmd) ff.run() return _result_path
代码说明:
1、change_size方法入参分别为:视频地址、输出目录、宽度、高度,码率(默认为2000k,已经算很高了)。
2、格式校验只有mp4,可以自行添加。
3、文件名用uuid,避免重复。
验证一下
准备的视频如下:
验证代码:
if __name__ == '__main__': print(change_size('C:/Users/yi/Desktop/981.mp4', 'C:/Users/yi/Desktop', 960, 540))
执行结果:
E:\ProgramData\Anaconda3\envs\pytorch\python.exe C:/Users/yi/PycharmProjects/test/video_tool.pyffmpeg -i C:/Users/yi/Desktop/981.mp4 -s 960*540 -b 2000k C:/Users/yi/Desktop\8b854c985b1411eca9982c4d54eea02b.mp4ffmpeg version n4.3.1-20-g8a2acdc6da Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9.3-win32 (GCC) 20200320 configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-iconv --enable-zlib --enable-libxml2 --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvmaf --disable-vulkan --enable-libvorbis --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-ffnvcodec --enable-cuda-llvm --disable-libglslang --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libtwolame --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-libs=-lgomp libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:/Users/yi/Desktop/981.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 title : ���ɱ�ֲ�̫��(���ݼ�����).Leon.1994.Directors.Cut.720p.Bluray encoder : Lavf58.45.100 copyright : bbs.cnxp.com(C)2009 description : This File is Created by Easy RealMedia Tools@! keywords : Ӱ�ӵ۹���Ʒ Duration: 00:00:05.64, start: 0.000000, bitrate: 1017 kb/s Stream #0:0(und): Video: h364 (High) (avc1 / 0x31637661), yuv420p, 1280x688, 881 kb/s, 23.98 fps, 23.98 tbr, 785647.00 tbn, 47.95 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandlerPlease use -b:a or -b:v, -b is ambiguousStream mapping: Stream #0:0 -> #0:0 (h364 (native) -> h364 (libx264)) Stream #0:1 -> #0:1 (aac (native) -> aac (native))Press [q] to stop, [?] for help[libx264 @ 000001757623e580] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2[libx264 @ 000001757623e580] profile High, level 3.1, 4:2:0, 8-bit[libx264 @ 000001757623e580] 264 - core 161 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=23 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=2000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00Output #0, mp4, to 'C:/Users/yi/Desktop\8b854c985b1411eca9982c4d54eea02b.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 title : ���ɱ�ֲ�̫��(���ݼ�����).Leon.1994.Directors.Cut.720p.Bluray keywords : Ӱ�ӵ۹���Ʒ copyright : bbs.cnxp.com(C)2009 description : This File is Created by Easy RealMedia Tools@! encoder : Lavf58.45.100 Stream #0:0(und): Video: h364 (libx264) (avc1 / 0x31637661), yuv420p, 960x540, q=-1--1, 2000 kb/s, 23.98 fps, 785647.00 tbn, 23.98 tbc (default) Metadata: handler_name : VideoHandler encoder : Lavc58.91.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 0 vbv_delay: N/A Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler encoder : Lavc58.91.100 aacframe= 122 fps= 98 q=-1.0 Lsize= 1173kB time=00:00:05.01 bitrate=1914.6kbits/s speed=4.02x video:1087kB audio:79kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.552477%[libx264 @ 000001757623e580] frame I:1 Avg QP:16.01 size: 50847[libx264 @ 000001757623e580] frame P:31 Avg QP:12.50 size: 24730[libx264 @ 000001757623e580] frame B:90 Avg QP:17.24 size: 3280[libx264 @ 000001757623e580] consecutive B-frames: 1.6% 0.0% 0.0% 98.4%[libx264 @ 000001757623e580] mb I I16..4: 17.6% 53.9% 28.5%[libx264 @ 000001757623e580] mb P I16..4: 1.3% 3.8% 1.2% P16..4: 23.6% 21.4% 18.5% 0.0% 0.0% skip:30.2%[libx264 @ 000001757623e580] mb B I16..4: 0.1% 0.2% 0.1% B16..8: 27.3% 8.4% 3.2% direct: 3.6% skip:57.2% L0:38.3% L1:46.7% BI:14.9%[libx264 @ 000001757623e580] final ratefactor: 13.48[libx264 @ 000001757623e580] 8x8 transform intra:58.6% inter:57.4%[libx264 @ 000001757623e580] coded y,uvDC,uvAC intra: 65.5% 76.2% 67.7% inter: 18.4% 14.7% 4.1%[libx264 @ 000001757623e580] i16 v,h,dc,p: 53% 16% 13% 18%[libx264 @ 000001757623e580] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 15% 21% 3% 5% 6% 4% 6% 4%[libx264 @ 000001757623e580] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 35% 18% 13% 5% 7% 8% 5% 6% 4%[libx264 @ 000001757623e580] i8c dc,h,v,p: 48% 22% 24% 7%[libx264 @ 000001757623e580] Weighted P-Frames: Y:0.0% UV:0.0%[libx264 @ 000001757623e580] ref P L0: 63.2% 13.5% 17.3% 6.0%[libx264 @ 000001757623e580] ref B L0: 89.6% 8.8% 1.7%[libx264 @ 000001757623e580] ref B L1: 95.1% 4.9%[libx264 @ 000001757623e580] kb/s:1749.39[aac @ 00000175743fe940] Qavg: 180.360C:/Users/yi/Desktop\8b854c985b1411eca9982c4d54eea02b.mp4
执行效果:
OK,分辨率调整为960x540。
以上是"基于Python如何实现视频分辨率转换"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
视频
分辨率
代码
内容
篇文章
环境
学习
帮助
调整
验证
上代
剑客
只有
地址
大小
宽度
废话
效果
文件
文件名
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
现在做软件开发的多少钱一个月
手机互联网科技
数据库安全技术加密
网络安全技术人才需求分析
soopat数据库
联想服务器 温度过高
ios基础软件开发
中国移动 网络安全处郑处长
监管处罚数据库
isi系列数据库是什么
2b2t中国版服务器怎么刷物资
结算系统数据库
内网用电脑当服务器
浦东新区好的软件开发哪家便宜
计算机网络技术对视力要求
长宁区工业网络技术创新服务
方舟服务器存在哪里
手机软件一直显示服务器出错
军队网络安全保密纪律
扩展maxdb数据库空间
杭州百世网络技术有限公司广
通信网关和通信服务器有什么区别
奇亚网络技术
中国网络技术公司招聘
网络安全教育平台登录达州
监听数据库变化
安徽自动点胶软件开发
面向对象数据库现状
java软件开发分层
文本数据库与条款识别的顺序