之前开发的一个需求,就是别人提供一些视频,放在横屏的android设备上播放,但是默认播放器,以及Exoplayer播放时候,竖屏的视频会自动被横向拉宽,很影响正常观看;
处理方法:1.另选则播放器,能正常播放的;2.对竖向视频进行处理;3.网上找方法处理视频
第一种方法有一些开发量,要选择正确的视频播放框架,并合入代码,比较麻烦,
第二种方法,对视频处理,调整视频的宽高,比如由原来的宽高 360:640 变为 1280:800;
第三种方法,网上或者一些小程序可以进行转换,但是都是收费的
我采用的是第二种方法,视频处理的要设计到ffmpeg,也可以通过.bat文件实现这个功能,以及批量处理也可以;
视频音频处理,一般采用的是ffmpeg技术,可处理
ffmpeg相关的,可参考:ffmpeg常用命令_大渔歌_的博客-CSDN博客
以下是.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
通过这种方式,完美解决了竖屏的视频的转换;
其实主要原理就是横向加黑边,然后使视频达到播放起来是横向视频的效果,算是一种取巧的方法吧,生成的视频和第三种得到的视频其实效果差不多;