以前に開発された要件の 1 つは、他の人がいくつかのビデオを提供し、それを横画面の Android デバイスで再生することですが、デフォルトのプレーヤーと Exoplayer が再生すると、縦画面のビデオが自動的に横方向に引き伸ばされ、通常の表示に影響します。
処理方法: 1. 通常再生できる別のプレーヤーを選択します; 2. 縦型ビデオを処理します; 3. オンラインでビデオを処理する方法を見つけます
最初の方法では開発が必要であり、適切なビデオ再生フレームワークを選択してコードを組み込むのは面倒です。
2 番目の方法は、ビデオを処理してビデオの幅と高さを調整することです。たとえば、元の幅と高さを 360:640 から 1280:800 に変更します。
3 番目の方法は、インターネットまたはいくつかの小さなプログラムを変換できますが、すべて有料です。
私は 2 番目の方法を使用します。ビデオ処理は ffmpeg に設計する必要があります。この機能は .bat ファイルを通じて実現することもでき、バッチ処理も可能です。
ビデオとオーディオの処理は、通常 ffmpeg テクノロジーを使用して処理できます。
ffmpeg関連情報については、 ffmpeg 共通コマンド_Da Yuge_ のブログ-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
このようにして、縦画面ビデオの変換は完全に解決されます。
実際には、主な原理は、水平方向に黒枠を追加し、水平方向のビデオのように再生することです。これはトリッキーな方法です。生成されたビデオは、実際には 3 番目の方法で取得したビデオと似ています。