软件:ffmpeg
下载网址:官网
ffmpeg安装使用及环境配置:自行百度

新建快速脚本 命名为 ffmpeg-new-aspect.bat

rem https://stackoverflow.com/questions/17657718/how-to-specify-size-of-output-image-in-ffmpeg-command
rem 待改进:多音轨多字幕时只能复制第一个,其他丢失
rem 改完:应该不会丢字幕了。
rem 以后写脚本用python吧,.bat的坑太多了,填不完。

@echo off
if "%~1"=="" (
echo function: adjust video Display Aspect Ratio, will copy video and audio streams to a new file.
echo usage: ffmpeg-new-aspect [file]  [-aspect a:b]
echo -aspect, default aspect is 4:3
goto end
)

set aspectStr="4:3"
if "%2"=="-aspect"  set aspectStr="%3"
set file=%~1
set newFile=%~n1[new-aspect]%~x1
@echo on
# ffmpeg -i "%file%" -scodec copy -acodec copy -vcodec copy -aspect 4:3 "%newFile%"
ffmpeg -i "%file%" -c copy -map 0 -aspect "%aspectStr%" "%newFile%"
:end

1. mkv无损转换为mp4(复制视频流,复制音频流)

ffmpeg -i video_input.mkv -c:a copy -c:v copy video_output.mp4

2. 视频转换播放宽高比为4:3

ffmpeg-new-aspect.bat video_input.mp4 -aspect 4:3

3. 4:3视频再处理 修改原始宽高比(根据需求选择任意一条命令)
(1) 波动码率,复制音频流,修改像素比为1280:960 ,隐藏元数据(vbr码率波动较大,肉眼无损,但视频容量变小)

ffmpeg -i video_input.mp4 -vf scale=1280:960 -c:a copy -qscale 0 video_output.mp4 -hide_banner

(2)设置29.97fps,比特率/码率设置为3500kb/s,复制音频流,修改像素比为1280:960,隐藏元数据,三种方法(肉眼无损,容量不变)

ffmpeg -i video_input.mp4 -vf scale=1280:960 -c:a copy -r 30000/1001 -b:v 3500k video_output.mp4 -hide_banner
ffmpeg -i video_input.mp4 -vf scale=1280:960 -c:a copy -r 29.97 -b:v 3500k video_output.mp4 -hide_banne
ffmpeg -i video_input.mp4 -vf scale=1280:960 -c:a copy -r netsc -b:v 3500k video_output.mp4 -hide_banner

(3)设置30fps,比特率/码率设置为3500kb/s,复制音频流,修改像素比为1280:960,隐藏元数据(肉眼无损,容量不变)

ffmpeg -i video_input.mp4 -vf scale=1280:960 -c:a copy -r 30 -b:v 3500k video_output.mp4 -hide_banner
08-31 08:48