一.实现图中视频
就是定义一个背景图,然后指定位置放置视频,比如
我们想让小电视区域播放视频,FFMPEG如何实现呢
实现步骤:
- 找出小电视的坐标位置(很多种方法,大家可自行获取),并找到电视屏幕对应的长宽
- 调整视频的分辨率,因为小电视的长宽是一定的,可通过该命令处理视频:ffmpeg -i test.mp4 -s 640*480 out_s.mp4
- 背景图,指定的位置放置图片,可通过该命令实现:ffmpeg -loop 1 -i 4.png -i input.mp4 -filter_complex overlay=(W-w)/2:(H-h)/2:shortest=1,format=yuv420p -c:a copy -y test.mp4
其中overlay代表的是视频左上角要放的位置点
以上就可以实现了,其实也可以用来实现给视频添加大的背景图
二.调整视频宽高(竖屏视频-横屏视频)
日常有些本地视频,竖屏播放正常,放到横屏上时就会显得很扁,如何把竖屏视频变成横屏视频呢,经搜索,一些公众号可以实现该功能,但都是收费的,而且是手机公众号加关注有时长限制,也可以通过FFMPEG实现该功能;
以下.bat 脚本是我之前写的,可以实现该功能,可参考:
@echo off
setlocal enabledelayedexpansion
rem video 是你要调整的视频的文件名
set /p video=请输入文件名(如 a.mp4):
rem wvh 原视频的宽:高
set wvh=368:640
rem 设置你想设置的视频的宽度,默认是1280
set orweight=1280
rem 设置你想设置的视频的高度,默认是800
set orheight=800
rem weight 原视频的宽
set /p weight=请输入原视频的宽:
rem height 原视频的高
set /p height=请输入原视频的高:
rem 新视频的名字
set outvideo=%video%-newmp4.mp4
set /a x1=(%orweight%-%weight%)/2
set /a y1=(%orheight%-%height%)/2
echo --------------------------------------------------
echo %video%
echo %wvh%
echo %outvideo%
echo %x1% %y1%
rem 640*400 为视频的视频率,可自行修改,注意视频的大小
rem ffmpeg -i %video% -s 640*400 -aspect %wvh% -y %outvideo%
rem ffmpeg -i %video% -vf "transpose=2" -y %outvideo%
rem ffmpeg -i %video% -vf drawbox=x=0:y=0:w=100:h=640:c=yellow:t=10 -y %outvideo%
rem 1280*800 默认调整视频分辨率为1280*800,可自行调整
ffmpeg -i %video% -vf pad=%orweight%:%orheight%:%x1%:%y1%:black -y %outvideo%
pause
其实思路也就是加黑边,实现竖屏变横屏的效果,和网络/公众号上限时/付费实现的效果一样;
三.视频批量截图
可参考:
.bat 如何批量视频截图_截图bat代码
四.B站缓存视频格式转换
可参考:
bat 批处理 B站缓存视频转成 .mp4格式