一、简介

Imageio是一个Python库,提供了一个简单的界面来读取和写入各种图像数据,包括动画图像,视频,体积数据和科学格式。它是跨平台的,运行在Python 2.7和3.4+上,易于安装。

作为用户,您只需要记住一些功能:

imread()和imwrite() - 用于单个图像

mimread()和mimwrite() - 用于图像系列(动画)

volread()和volwrite() - 用于体积图像数据

get_reader()和get_writer() - 用于更多控制(例如流式传输)

有关更多信息,请参阅文档。

通过一系列功能简单的界面。

使用conda或pip 易于安装。

几乎没有依赖(只有Numpy和Pillow)。

纯Python,运行在Python 2.7,3.4 +和Pypy上

跨平台,在Windows,Linux,OS X上运行(Raspberry Pi计划)

许多支持的格式。

可以读取文件名,文件对象,zip文件,http / ftp和原始字节。

使用插件轻松扩展。

通过许多测试和持​​续集成来维护代码质量。

Imageio有一个相对简单的核心,为不同的文件格式提供通用接口。这个核心负责从不同的源(如http)读取,并为插件公开一个简单的API来访问原始数据。所有文件格式都在插件中实现。可以轻松注册其他插件。

一些插件依赖于外部库(例如ffmpeg)。Imageio提供了一种通过一个函数调用下载这些函数的方法,并在需要时提示用户这样做。下载缓存在您的appdata目录中,这可以保持imageio轻松和可扩展。

Imageio提供各种图像格式,包括科学格式。任何有关实现更多格式的帮助都非常受欢迎!

代码库遵循PEP8样式指南的(子集)。我们力求最大的测试覆盖率(核心为100%,每个插件为> 95%)。

二、代码总结:

import subprocess

import imageio

import os

from PIL import Image

def video2mp3(file_name):

"""

将视频转为音频

:param file_name: 传入视频文件的路径

:return:

"""

outfile_name = file_name.split('.')[0] + '.mp3'

subprocess.call('ffmpeg -i ' + file_name

+ ' -f mp3 ' + outfile_name, shell=True)

def video_add_mp3(file_name, mp3_file):

"""

视频添加音频

:param file_name: 传入视频文件的路径

:param mp3_file: 传入音频文件的路径

:return:

"""

outfile_name = file_name.split('.')[0] + '-txt.mp4'

subprocess.call('ffmpeg -i ' + file_name

+ ' -i ' + mp3_file + ' -strict -2 -f mp4 '

+ outfile_name, shell=True)

def compose_gif(file_path):

"""

将静态图片转为gif动图

:param file_path: 传入图片的目录的路径

:return:

"""

img_paths = sorted([int(p[3:-4]) for p in os.listdir(file_path) if os.path.splitext(p)[1] == ".png"])

img_paths = img_paths[:int(len(img_paths) / 3.6)]

gif_images = []

for path in img_paths:

gif_images.append(imageio.imread('{0}/out{1}.png'.format(file_path, path)))

imageio.mimsave("test.gif", gif_images, fps=30)

def compress_png(file_path):

"""

将gif动图转为每张静态图片

:param file_path: 传入gif文件的路径

:return:

"""

img_paths = [p for p in os.listdir(file_path) if os.path.splitext(p)[1] == ".png"]

for filename in img_paths:

with Image.open('{0}/{1}'.format(file_path, filename)) as im:

width, height = im.size

new_width = 150

new_height = int(new_width * height * 1.0 / width)

resized_im = im.resize((new_width, new_height))

output_filename = filename

resized_im.save('{0}/{1}'.format(file_path, output_filename))

if __name__ == '__main__':

# video2mp3(file_name='data-a.mp4')

video_add_mp3(file_name='swap-data-a.mp4', mp3_file='data-a.mp3')

# compose_gif(file_path='merged')

# compress_png(file_path='merged')

python合并视频和音频_Python做图像处理及视频音频文件分离和合成功能相关推荐

  1. python合并视频和音频_真没想到,Python 还能实现 5 毛特效

    作者 | ZackSock 来源 | ZackSock(ID:ZackSock) Python牛已经不是一天两天的事了,但是我开始也没想到,Python能这么牛.前段时间接触了一个批量抠图的模型库,而 ...

  2. python合并视频和音频_FFMpeg无损合并视频的多种方法 python | 猴头客

    方法二确实可行 方法1 我试着不行 需要的话自己试试把 python 的调用cmd命令是这么写的 res=os.system("ifconfig"); 众所周知,从某些视频网站下载 ...

  3. python合并视频和声音_Python 视频文件的分割和合并

    import os; import time; os.system('start "wmplayer.exe", "F:\\abc.mp4"'); --分割代码 ...

  4. python 循环播放音乐_pyaudio:基于pyaudio利用Python编程实现播放音频mp3、wav等格式文件...

    基于pyaudio利用Python编程实现播放音频mp3.wav等格式文件 T1.while循环输出数据流的方法def play(): chunk=1024 #2014kb wf=wave.open( ...

  5. pyaudio:基于pyaudio利用Python编程实现播放音频mp3、wav等格式文件

    基于pyaudio利用Python编程实现播放音频mp3.wav等格式文件 目录 输出结果 实现代码 输出结果 实现代码 T1.while循环输出数据流的方法 def play():chunk=102 ...

  6. python短视频自动制作_Python 带你一键生成朋友圈超火的九宫格短视频

    1. 场景 如果你经常刷抖音和微信朋友圈,一定发现了最近九宫格短视频很火! ​从朋友圈九宫格图片,到九宫格视频,相比传统的图片视频,前者似乎更有个性和逼格 除了传统的剪辑软件可以实现,是否有其他更加快 ...

  7. 计算机应用技术视频剪辑,万能的剪辑、合并视频、音频的技术 爱剪辑使用教程...

    这个经验本来想首发到亲亲家园,没想到这边有活动,所以先发到百度经验这边来,我这个经验是教大家可以利用一款软件达到目前网上下载不到的各种声音和视频的剪辑,是一种高级的技术,要不是被吸引了,我发现的这个经 ...

  8. python给视频添加声音_python给视频添加背景音乐并改变音量的具体方法

    用到给视频添加背景音乐,并改变音量.记录一下,与碰到同样问题的朋友共享. import subprocess inmp4='E:/PycharmProjects/untitled2/hecheng/1 ...

  9. 用python合并视频--将几段视频合并成一个

    MoviePy是一个用于视频编辑的Python模块,我们可以用它实现一些基本的视频操作(比如视频剪辑,视频拼接,插入标题),还可以实现视频合成,还有视频处理,还能它加入一些自定义的高级的特效. fro ...

最新文章

  1. 关于android.view.WindowLeaked(窗体泄露)的解决方案
  2. 【生活随想】实习结束以及开始校园招聘
  3. 精通python能干嘛-一个程序员怎样才算精通Python?
  4. 前端学习(679):switch语句
  5. margin 负边距应用
  6. LeetCode MySQL 1581. 进店却未进行过交易的顾客
  7. mysql自定义两个条件排序_使用MySQL中的两个不同列进行自定义排序?
  8. java多线程nullpointerexception_温故而知新!越是基础越容易被忽略,java最全基础知识,附赠资料...
  9. 【VM】—VM安装包
  10. 基于SpringBoot大学生数码租赁网站答辩PPT模板
  11. 【优化算法】人工大猩猩部队优化算法(GTO)【含Matlab源码 1798期】
  12. cxf框架Demo1
  13. 【原创】STM32低功耗模式及中断唤醒(基于BMI160及RTC)的研究
  14. HDS VSP/VM高端存储更换硬盘
  15. Windbg 命令 (一)
  16. 数据结构学习笔记-常用十大算法
  17. requests爬取链家网房源数据
  18. 六脉连环大总结,教你干趴Docker
  19. OpenCV学习之Canny算法自实现
  20. MicroPython_ESP8266_IoT——第四回 初入联网(接入了贝壳物联)

热门文章

  1. 尚硅谷的谷粒学院在线教育项目笔记
  2. 机智云相关的控制协议和上报协议简介
  3. AD17入门简单教程(二)
  4. 如何在Vue中实现过渡效果
  5. PS抠图,更改电脑主板的背景
  6. 看不懂!苏宁控股“卖身”淘宝,“盲盒第一股”市值破千亿,超过苏宁易购
  7. Oracle 培训笔记
  8. Linux进阶 apache服务器;虚拟主机
  9. 【华为认证-每日十题】HCNP-RS-IENP(1-10)【问】
  10. 虚拟 高性能计算 ScaleMP- HPC:- PC搭建超级计算机