提升视频的用户体验关系到视频的标题、视频的缩略图、视频内容清晰度、视频流畅度、视频内容的吸引力(代价度)等成分。
而每个成分终极都会影响视频的流量、点击率、社交能力。
本日为大家讲下成分之一视频缩略图的实现。
也是我以前做网盘时实现的业务功能之一。
网盘为了提升用户体验会将图片、视频、文档等内容天生干系的缩略图方便用户第一感不雅观理解文档内容。

1、FFmpeg安装

#MACbrew install ffmpeg#Linuxwget http://www.ffmpeg.org/releases/ffmpeg-5.0.tar.gztar zxvf ffmpeg-5.0.tar.gzcdffmpeg-5.0./configure--prefix=/usr/local/ffmpegmakemakeinstall

2、视频缩略图(视频所有帧图片)

php获取视频缩略图Python应用FFmpeg视频缩略图实现 Python

ffmpeg -i test.mp4 -f image2 %05d.jpg-i filename 输入的文件名-f 输出文件格式 image2 avi wav等 %05d.jpg 输出文件名格式(5位数字) 00001.jpg ~ 99999.jpg

3、视频缩略图(指定图片宽高)

ffmpeg -i test.mp4 -f image2 -s 1024768 %05d.jpg-s size 输出的图片的大小(宽高) 输出的图片可能存在变形情形,只管即便不指定此参数

4、视频缩略图(指定时间段图片)

ffmpeg -i test.mp4 -t 5 -f image2 %05d.jpg-t duration 视频的前duration秒图片ffmpeg -i test.mp4 -ss 0:0:30 -to 0:0:40 -f image2 %05d.jpg-ss time_off 视频开始韶光位置-to time_stop 视频结束韶光位置

5、视频缩略图(每秒截取速率)

ffmpeg -i test.mp4 -r 1 -f image2 %05d.jpg-r rate 每秒截取rate张图片(每秒的帧数)

6、视频缩略图(覆盖输出图片)

ffmpeg -i test.mp4 -y -f image2 %05d.jpg-y overwrite output files

7、视频缩略图(Gif图)

ffmpeg -i test.mp4 -vframes 30 -y -f gif test.gif-vframes number 输出视频前number秒Gif图

8、视频缩略图(视频水印)

ffmpeg -i test.mp4 -i baidu.png -filter_complex "overlay=main_w-overlay_w-10 : main_h-overlay_h-150:enable='between(t,5,10)'" -y -b 10024k -acodec copy -f mp4 test_baidu.mp4enable='between(t,5,10) 指定水印开始秒结束秒左上角 10:10右上角 main_w-overlay_w-10:10左下角 10:main_h-overlay_h-10右下角 main_w-overlay_w-10 : main_h-overlay_h-10

9、视频缩略图(超时时间)

timeout 5s ffmpeg -i test.mp4 -f image2 %05d.jpgtimeout Linux Shell超时命令(由于ffmpeg无超时参数以是利用timeout实现)

10、Python调用代码

import subprocessdef run_shell_command(command): ret = subprocess.run(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding="utf-8",timeout=10) if ret.returncode == 0: print("success:",ret) else: print("error:",ret)#subprocess实行shell命令run_shell_command("ffmpeg -i /Users/linux/Downloads/test.mp4 -t 5 -f image2 %05d.jpg")实行结果:success: CompletedProcess(args='ffmpeg -i xxxxxx)

11、文档缩略图技能方案

类型

文件扩展名

技能选型

文本文件

txt、html、css、js、php、go、java、sql、md、ini、vue、json、conf、c、cpp、py等

ImageMagick convert命令

Office2007文档

docx、pptx、xlsx等

Unzip + ImageMagick convert命令

Office2003文档

doc、ppt、xls等

LibreOffice/OpenOffice + ImageMagick convert命令

Csv文件

csv

同Office2003文档

Apple办公函档

pages、keynote、key、numbers

同Office2007文档

Pdf文件

pdf

同文本文件

脑图、视觉文件

xmind、sketch

同Office2007文档

图片文件

ps、psd、jpg、jpeg、png、bpm等

同文本文件

视频文件

mp4、wmv、mpg、mkv、avi等

FFmpeg

大家有什么见地或建议可以发评论沟通。

感谢大家的评论、点赞、分享、关注。