【FFmpeg】做一个抖音/快手视频模板常用哪些功能
最近用ffmpeg做了一批视频模板供公司业务使用,结合shell脚本实现,常用的功能有如下几个:
- scale:缩放
- pad:填补
- drawtext:加文字
- ffprobe:获取视频一些属性
简单说几个可以实现的和未解决的:
1、scale之后出现尺寸与指定值不一致:需要设置setsar,前文有提到:https://blog.csdn.net/sayhelen/article/details/12427481422
2、pad和scale一起使用时,需要注意顺序,pad默认会补黑边,怎么样让最终结果即实现缩放又实现补透明呢?
第一,要先设置scale,在设置pad
第二,pad可以设置补的颜色和透明度,即颜色可以设置为RRGGBBAA,把A设置为0(即透明度100%即可,设置什么颜色都不重要了)
如下代码,实现载入图片按合适尺寸,顺时针/逆时针转动旋转效果:
input="xxx.jpeg"
output="rotate.mp4"
background="xxx.mp4"let T=2
let RT=${T}*2
ffmpeg -loop 1 -t "${T}s" -i ${input} -i ${background} \
-filter_complex "[0]scale=720:-1,setsar=1[vr];\
[vr]scale=w='iw-(hypot(iw,ih)-iw)/(${T}*25)*n':h=-1:eval=frame,\
pad='hypot(iw,ih)':ow:(iw-ow)/2:(ih-oh)/2:color=0x00000000,\
rotate=a=n*PI/6/(${T}*25):ow='hypot(iw,ih)':oh=ow:c=0x00000000,split[vzi][vzo];\
[vzo]reverse[vs];[vzi][vs]concat=n=2:a=0:v=1[v1];\
[1][v1]overlay=(W-w)/2:(H-h)/2:shortest=1" \
-r 25 -t ${RT} -y ${output}
3、drawtext设置字号、颜色、边框等常规样式及行间距等都可以,换行常见有2种解法:
1)用textfile在外部txt文件里换行
2)定义多个drawtext,各自计算y值
还有一种说加换行符,我一直没找到怎么录入这个符号能起作用。
未解决的问题是设置斜体效果,部分情况下可以实现加粗(不是通过字体,而是用textfile形式设置bold属性)
4、ffprobe可以打印视频属性,我常用它来获取视频时长和宽高信息,我自己写了一个getMediaInfo.sh脚本获取某个目录下全部视频文件的帧率、码率、时长和宽高值,全文如下:
#!/bin/sh
# 使用while循环读取$1文本
outfile="/Users/xxx/Desktop/"function read_dir(){for file in `ls $1`doif [ -d $1"/"$file ] #注意此处之间⼀定要加上空格,否则会报错thenread_dir $1"/"$fileelif [ -n $file ]; then#判断是否读取到的数据是空行#提取fps, width, height等tmp_v=`echo $1"/"$file`fps=`ffprobe -v quiet -select_streams v:0 -show_entries stream=avg_frame_rate -of default=noprint_wrappers=1:nokey=1 $tmp_v`vrate=`ffprobe -v quiet -select_streams v:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 $tmp_v`arate=`ffprobe -v quiet -select_streams a -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 $tmp_v`duration=`ffprobe -v quiet -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 $tmp_v`size=`ffprobe -v quiet -select_streams v:0 -show_entries stream=height,width -of csv=s=x:p=0 $tmp_v`outcome="$file $fps $vrate $arate $duration $size"# outcome="$file $fps"fps" $vrate"kbps" $arate"kbps" $duration"s" $size"echo $outcomeelseecho "current file is null"# x=$x,"'"$tmp_v"'"fiecho $outcome >> ${outfile}/mediainfo.txtdone
}read_dir $outfile
【FFmpeg】做一个抖音/快手视频模板常用哪些功能相关推荐
- 冷知识项目教程,教你如何做一个抖音冷知识账号
白嫖的冷知识项目教程,教你如何做一个抖音冷知识账号 变现途径:带货,星图广告,收徒 课程目录: 1-养号.mp4 2-找素材.mp4 3-素材剪辑.mp4 4-配音软件使用.mp4 5-导入配音及画面 ...
- Android中探究抖音短视频的动态壁纸功能以及拓展功能使用
一.前言 最近玩抖音感觉都快废了,所以我决定不玩了我要学习所以先从他的动态壁纸学起,因为整个应用中也就是动态壁纸有点好玩的技术,而且也就是抖音能做这个功能,其他的短视频或许做不了比如快手如果要做你觉得 ...
- android sdk build-tools_从零开始仿写一个抖音App——视频编辑SDK开发(一)
本文首发于微信公众号--世界上有意思的事,搬运转载请注明出处,否则将追究版权责任.交流qq群:859640274. 大家好久不见,又有一个多月没有发文章了.不知道还有哪些读者记得我的 从零开始仿写抖音 ...
- 分享一个抖音刷视频的python代码
前一段时间总是给我推送抖音刷视频的广告,有点好奇就下了个,确实是能刷到点现金,但是也不喜欢看小视频,就在网上找攻略怎么用python刷视频,代码如下: import os import timeb = ...
- 抖音快手视频号保证金大幅度涨价
我是卢松松,点点上面的头像,欢迎关注我哦! 进入11月后.几大主流短视频平台,抖音.视频号的保证金都大幅度上涨.据说快手也涨了. 前段时间,视频号停止了第三方合作,而且也开始催促缴纳保证金.向我们松松 ...
- 5个在家也能做的抖音短视频号,快行动起来
01 美食号 常见的美食账号,常规操作就是烹饪教学,一般如果有相关的经验,那做起来就是如鱼得水,这时候你只要稍微学习下拍摄的角度和基础的剪辑知识就可以,当然咱们也不一定非要往美味诱人的方向发展,有时候 ...
- 白嫖的冷知识项目教程,教你如何做一个抖音冷知识账号,多种变现方式
变现途径:带货,星图广告,收徒 课程目录: 1-养号.mp4 2-找素材.mp4 3-素材剪辑.mp4 4-配音软件使用.mp4 5-导入配音及画面同步.mp4 6-动画人物制作.mp4 7-视频剪辑 ...
- 批量下载抖音快手视频
官网 http://www.9izs.com/
- 抖音字幕视频怎么做 ,抖音上视频怎么加字幕
最新文章
- 客户端(C#)调用CXF搭建的webservice的出现一些问题记录
- React-native 官方 demo
- 写在2-14,程序员才看得懂的情书
- 大数据在银行业的应用场景
- CPP第四版第五章:位操作符、sizeof及部分编程习题
- 网易实战分享|实时音视频会议场景下QoS策略
- 常见Java面试题之如何实现对象克隆
- OutOfMemoryException异常解析
- Python的函数参数传递:传值?引用?
- 前端学习(2816):原生框架目录结构
- shader 获取法线_Unity Shader 入门到改行5——法线贴图
- HashMap 为什么会导致 CPU 100%?文章看不懂?来看这个视频吧!——面试突击 006 期...
- 使用 jQuery Mobile 与 HTML5 开发 Web App (九) —— jQuery Mobile 页面与对话框
- ubuntu18.04 ROS melodic—创建简单的机器人模型smartcar
- mina mysql_Mina源码阅读笔记(四)—Mina的连接IoConnector2
- Ubuntu14.04+CUDA6.5+OpenCV2.4+Caffee配置
- 网件rax40可以刷梅林_深度爆料网件RAX40评价如何?怎么样呢?真实体验曝光
- Verilog 交通灯控制器
- 见证历史时刻!关于朗道-西格尔零点猜想
- flac格式怎么转换mp3格式?