软件: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