ffmpeg 日常实现的小功能(更新中)

一.实现图中视频

        就是定义一个背景图,然后指定位置放置视频,比如

ffmpeg 日常实现的小功能(更新中)_第1张图片

我们想让小电视区域播放视频,FFMPEG如何实现呢

 实现步骤:

  1. 找出小电视的坐标位置(很多种方法,大家可自行获取),并找到电视屏幕对应的长宽
  2. 调整视频的分辨率,因为小电视的长宽是一定的,可通过该命令处理视频:ffmpeg -i test.mp4 -s 640*480 out_s.mp4
  3. 背景图,指定的位置放置图片,可通过该命令实现: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代码_大渔歌_的博客-CSDN博客

四.B站缓存视频格式转换

可参考:

bat 批处理 B站缓存视频转成 .mp4格式_m4s b站 bat_大渔歌_的博客-CSDN博客

你可能感兴趣的:(ffmpeg,bat,ffmpeg)