Math 手刹

Math 手刹,math,video,html5-video,Math,Video,Html5 Video,我喜欢Handbrake CLI,并将其用于我创建的一个内部工具,以帮助将大型未压缩视频转换为支持HTML5的MP4 这在普通高清电影(1920x1080/1280x720)中效果非常好,但在YouTube上添加720p视频时效果不太好,例如,在YouTube上,黑条已经被编码器自动删除 这意味着输入视频的分辨率为1280x528(而不是720高,因为它缺少黑条) 所以,我要做的就是调整视频的比例,使其适合我的预览面板的高度,然后裁剪多余的宽度 基本的逻辑,基本的数学,但手刹扭曲了整个事情,让我

我喜欢Handbrake CLI,并将其用于我创建的一个内部工具,以帮助将大型未压缩视频转换为支持HTML5的MP4

这在普通高清电影(1920x1080/1280x720)中效果非常好,但在YouTube上添加720p视频时效果不太好,例如,在YouTube上,黑条已经被编码器自动删除

这意味着输入视频的分辨率为1280x528(而不是720高,因为它缺少黑条)

所以,我要做的就是调整视频的比例,使其适合我的预览面板的高度,然后裁剪多余的宽度

基本的逻辑,基本的数学,但手刹扭曲了整个事情,让我发疯

下面是我使用的一行:

./HandBrakeCLI-i manu of_Steel.mp4-e x264-a none-q 25-f mp4-o test.mp4--优化-w 714-l 402--从持续时间1开始--在持续时间3停止--裁剪0:0:130:130

这将保存3秒钟的预览

数学是:

整数标度宽度
整数标度高度

int targetWidth=714

int targetHeight=402

float scaleFactor=(float)targetHeight/videoHeight;//按高度缩放

scaledWidth=(浮点)videoWidth*scaleFactor;//结果是974

scaledHeight=(float)videoHeight*scaleFactor;//结果是402

int offset=(scaledWidth-targetWidth);//结果是130像素 两边都需要修剪

然而,视频被扭曲了! 通过反复试验,我发现使它看起来更好的正确偏移量是169,只是我不知道为什么这是正确的值

有人能帮我找出问题所在吗


谢谢

您的数字表明
偏移量
适用于原始视频,即先移动然后缩放。此外,您必须除以2,因为您希望整个边距在两侧均匀分布

int offset = (scaledWidth - targetWidth)/(2 * scaleFactor)
     170   = (    974     -     714    )/(2 * (402 / 528))

我确实把它除以2,但是失真更大!这真是太棒了。我对数学一窍不通,所以你不明白为什么你要用2除以比例因子:x,谢谢你@安德烈:为什么要除法与数学关系不大,而与应用程序如何处理其参数关系很大。特别是它执行各种转换的顺序。