利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法


Posted in Python onJanuary 08, 2019

由于跑编码的需要,所以需要制作一个.yuv格式的图片数据集,但是手头只有.jpg格式的,故记录下转换过程。其他图片格式也可以,代码里修改一下就行。

①安装ffmpeg

官网(各种版本):ffmepg官网

window版:https://ffmpeg.zeranoe.com/builds/

②安装ffmpeg的python3接口ffmpy3

在命令行中输入以下命令:

pip install ffmpy3

③将下载好的windows版解压,把ffmpeg.exe复制到你将要跑python代码的文件夹里

④python代码如下:

# -*- coding: utf-8 -*-
import os
from PIL import Image
from ffmpy3 import FFmpeg
 
in_jpgDatasetPath = 'I:/VOC/trainval'
out_yuvDatasetPath = 'I:/VVC/loop/yuvdataset'
 
piclist = os.listdir(in_jpgDatasetPath)
for pic in piclist:
 picname = pic.split('.')[0]
 picpath = os.path.join(in_jpgDatasetPath,pic)
 img = Image.open(picpath)
 in_wid,in_hei = img.size
 out_wid = in_wid//16*16
 out_hei = in_hei//16*16
 size = '{}x{}'.format(out_wid,out_hei) #输出文件会缩放成这个大小
 outname = out_yuvDatasetPath + '/' + picname + '_'+size+ '.yuv'
 
 ff = FFmpeg(inputs={picpath:None},
    outputs={outname:'-s {} -pix_fmt yuv420p'.format(size)})
 print(ff.cmd)
 ff.run()

以上这篇利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python sys.argv用法实例
May 28 Python
Python的净值数据接口调用示例分享
Mar 15 Python
使用Python的Twisted框架构建非阻塞下载程序的实例教程
May 25 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
Python中请不要再用re.compile了
Jun 30 Python
python卸载后再次安装遇到的问题解决
Jul 10 Python
python面向对象 反射原理解析
Aug 12 Python
Python hashlib模块实例使用详解
Dec 24 Python
Python输出指定字符串的方法
Feb 06 Python
python的help函数如何使用
Jun 11 Python
python打开文件的方式有哪些
Jun 29 Python
如何在python中处理配置文件代码实例
Sep 27 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
Jan 08 #Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 #Python
python-opencv 将连续图片写成视频格式的方法
Jan 08 #Python
对Python+opencv将图片生成视频的实例详解
Jan 08 #Python
Python中的heapq模块源码详析
Jan 08 #Python
python使用PIL模块获取图片像素点的方法
Jan 08 #Python
python 获取图片分辨率的方法
Jan 08 #Python
You might like
php 代码优化的42条建议 推荐
2009/09/25 PHP
php数组使用规则分析
2015/02/27 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
jQuery 选择表格(table)里的行和列及改变简单样式
2012/12/15 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
2016/06/06 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
理解javascript async的用法
2017/08/22 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
Vue使用NPM方式搭建项目
2018/10/25 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
Django Admin实现上传图片校验功能
2016/03/06 Python
Python 基础教程之包和类的用法
2017/02/23 Python
Sanic框架流式传输操作示例
2018/07/18 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
css3 border-radius属性详解
2017/07/05 HTML / CSS
Hotels.com印度:酒店预订
2019/05/11 全球购物
家长对老师的感言
2014/03/11 职场文书
买房委托公证书
2014/04/08 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
开除员工通知
2015/04/22 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书
Python3.10的一些新特性原理分析
2021/09/15 Python
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS