视频如下所示:

看这个视频是不是很有食欲,擦擦口水,下面回归咱们本文正题啦!


1.ffmpeg一行代码实现视频转换为图片 ffmpeg的安装请参考上一篇文章《Python批量转换音乐视频格式》,或者自行百度,安装方法非常简单! ffmpeg一行代码实现视频转换为图片,代码如下所示: ffmpeg -i test.avi %d.jpg ffmpeg几乎支持可以解码所有的视频和图片格式,所以可以放心使用。我们知道视频是由一帧帧图片组成,只需要把这一帧帧的图片保存即可。通常视频的帧率为25 fps(可以参考测试中信号的频率为25Hz进行理解),即每秒25张图片,则一分钟长度的视频将保存成60x25=1500张图片。为了保持生成的图片名称具有相同的长度,我们可以使用格式符(%d、%f、%e、%s等),此处使用%d输出有符号的十进制整数。 如代码为: ffmpeg -i test.mp4 %4d.png 生成的图片名称为0001.png、0002.png、0003.png、……、1500.png 下面我们来测试这个代码,视频就用上文新鲜鸡汤的视频。 我的视频存放在桌面上,新生成的图片准备存放在桌面文件夹“一锅鸡汤”内。测试代码如下: ffmpeg -i C:\Users\Administrator\Desktop\一锅鸡汤.mp4 C:\Users\Administrator\Desktop\一锅鸡汤\%4d.png 生成过程如下所示,只需要短短几秒即可以实现功能,代码中视频和图片格式可以随意进行更换!

python ppm转为bmp python bmp转jpg_python ppm转为bmp

2. ffmpeg一行代码实现视频转换为gif动画


由于TX对视频的限制,上传的视频必须要经过审核。对于一些时间比较短的视频我们可以将其保存为GIF文件,更方便传播。视频文件保存成GIF格式,是把每一帧保存到GIF的动画帧中,使用该命令时必须将像素格式设置为rgb24。

视频转换为gif动画代码如下:

ffmpeg -i test.avi -pix_fmt rgb24promotion.gif

假如我们有一个需求是将上面那个鸡汤视频命名为“新鲜鸡汤”保存为GIF动画,测试代码如下所示:

ffmpeg -i C:\Users\Administrator\Desktop\一锅鸡汤.mp4-pix_fmt rgb24 C:\Users\Administrator\Desktop\一锅鸡汤\新鲜鸡汤.gif

生成过程如下所示,只需要短短几秒即可以实现功能,代码中视频和图片格式可以随意进行更换!

python ppm转为bmp python bmp转jpg_python ppm转为bmp_02

3. ffmpeg一行代码实现图片格式转换


如果你有一个jpg格式的图片想转换成png格式等类似的格式转换需求,那么可以参考下文方法。

Ffmpeg支持除EXR、LJPEG、PIC和PTX文件类型之外的几乎所有图像类型,这极大的方便了我们处理不同格式文件的工作。

格式转换的代码如下:

ffmpeg -i image.type1 image.type2

假设我们现在有个将png转换成jpg格式的需求,即将上文中0001.png格式转换为jpg并以名称“image”保存在相同文件夹内,测试代码如下:


ffmpeg -i C:\Users\Administrator\Desktop\0001.pngC:\Users\Administrator\Desktop\一锅鸡汤\image.jpg


实现过程如下所示,新生成的image.jpg在右上方文件夹内:

python ppm转为bmp python bmp转jpg_cooleditpro批量加速文件_03


此外还有一些音频、视频、图片等格式转换、裁剪编辑等相关问题,请自行了解吧,总之ffmpeg功能多多,操作也非常简单!

有了这些图片,我们后续可以做很多好玩的事情,比如针对每一帧图片进行处理,二值化、图像识别、做各种各样的炫酷视频等。

python ppm转为bmp python bmp转jpg_python ppm转为bmp_04


如果你想处理的工作内容比较少也比较单一,那么了解上面那么多就够了,如果你想再简单一些或者想批量处理视频、音频、图片等,那么Python会是你很好的工具。 假如我们现在有个需求:把上文1000张png格式的图片全部转换为jpg格式,这时如果我们一张张的进行转换,工作量非常大,几乎把自己坑死!!!这时如果借助Python将非常简单,喝杯咖啡的功夫,工作就自动完成了,so easy!4. ffmpeg+Python实现图片格式批量转换 针对上面的需求,实现起来非常简单,只需要15行代码! 首先获取png图片的存放路径,然后读取路径中所有的图片;再进行格式转换;最后保存到同一个文件夹即可,具体执行代码如下:

import subprocess 
  import os 
    
    
  def png2jpg(png_path, jpg_path=None): 
     filenames = os.listdir(png_path) 
     print(filenames)  # 显示文件夹内所有文件名称 
     for i in range(len(filenames)): 
         if "png" == filenames[i].split(".")[-1]: 
             png_files = os.path.join(png_path + "\\" + filenames[i]) 
             jpg_path = os.path.join(png_path + "\\" + filenames[i].rsplit('.',1)[0] + ".jpg") 
             error = subprocess.call([r"C:\ffmpeg\bin\ffmpeg","-i", png_files, jpg_path]) 
             if error: 
                  print("Done!%s 转换成功!" %filenames[i]) 
         else: 
             print("%s 不是一个有效的png格式文件!" % filenames[i]) 
    
    
  if __name__ == "__main__": 
     png_path = r"C:\Pythonwork\image2image\一锅鸡汤"  # 定义wav文件所在文件夹 
     png2jpg(png_path)

为了能更直观的看到图片格式转换的过程,我制作了一个GIF图片。为了减小图片的尺寸,此处选择10张照片进行示意,整个转换过程大概不到1秒钟,是不是非常快呀!

过程如下所示:

python ppm转为bmp python bmp转jpg_python ppm转为bmp_05

附录1 ffmpeg支持的图片格式


表格中列出了ffmpeg支持的图像格式及其特征后缀。除LJPEG(无损JPEG)以外的所有这些文件类型都可以解码,除EXR,PIC和PTX之外都可以编码。

ffmpeg支持的图片格式:

扩展名

编码

解码

描述

.Y.U.V

每个组件的一行文件

BMP

微软BMP图像

DPX

数码照片交换

EXR

X

OpenEXR

GIF

动画gif是未压缩的

JPG

不支持渐进式JPEG

JP2

JPEG 2000

JLS

JPEG-LS

LJPG

X

X

无损的JPEG

PAM

PAM是带有alpha支持的PNM扩展

PBM

便携式位图图像

PCX

PC画笔

PGM

便携式GrayMap形象

PGMYUV

PGM与U和V的分量在YUV 4:2 0

PIC

X

Pictor/PC Paint

PNG

便携式网络图形

PPM

便携式PixelMap形象

PTX

X

V.Flash  PTX格式

SGI

SGI RGB图像格式

RAS

Sun  Rasterfile图像格式

TIFF

YUV, JPEG和一些扩展还没有被支持

TGA

Truevision  Targa 图像格式

XBM

X位图图像格式

XFace

XFace图像格式

XWD

X窗口转储图像格式

python ppm转为bmp python bmp转jpg_python ppm转为bmp_06

  • python时域信号统计分析
  • Python加速度信号转速度位移小程序
  • Python批量转换音乐视频格式
  • Python编写加速度-振幅-频率转换程序
  • Python程序代码打包成exe独立可执行程序