如何使用 avconv 或 ffmpeg 将任何视频转换为精确的大小和形状

如何使用 avconv 或 ffmpeg 将任何视频转换为精确的大小和形状

我们有一个支持流媒体视频的系统,但我们支持多个播放器。我有多个系统可以用于此。目前,我一直在使用我们用于流式传输视频的媒体服务器,该服务器上面有 ffmpeg(运行 Red Hat 4)。在该系统上,我使用了:

 ffmpeg -i INPUT_FILE.mp4 -c:v libx264 -crf 23 -maxrate 3000k -bufsize 30000k -c:a aac -strict experimental -b:a 192k -filter:v "scale=iw*min($width/iw\,$height/ih):ih*min($width/iw\,$height/ih), pad=$width:$height:($width-iw*min($width/iw\,$height/ih))/2:($height-ih*min($width/iw\,$height/ih))/2" -f OUTPUT_FILE.mp4

我认为它效果很好。在我测试过的一个文件上,它似乎在两种播放器上都能正常显示。在另一个文件上,它显示不正确。输入文件的格式也各不相同(大部分是 mp4,还有一些 m4g 文件)和宽高比也不同。

我们还有许多运行 Ubuntu 13.04(附带 avconv)的台式机/笔记本电脑,我希望能够使用这些电脑来格式化视频。如果我能让其中至少一个系统正确格式化视频,那就太好了,但理想情况下,我想弄清楚如何使用 avconv 和 ffmpeg 来做到这一点,这样我就可以使用任何系统了。

我们试图解决的问题是,一个播放器是 Android DMP 设备,它可以根据需要在侧面或顶部/底部添加黑条,以保持视频大小正确,从而正确播放不同大小的视频。另一个播放器是三星智能电视,它非常智能,可以重新格式化视频以适应屏幕。这很糟糕,因为如果视频大小不完全正确,它会将它们拉伸到一个方向或另一个方向,以使其大小正确。生成的视频显示的人看起来身高 8 英尺,体重 130 磅,或身高 4 英尺,宽 3 英尺。

如何修复?

答案1

我也有一台三星智能电视。调整电视上的视频格式的方法是,在视频播放时按下遥控器上的“工具”按钮。然后,您可以在“图片大小”选项中使用多种选项来缩放视频。希望这对您有所帮助。

相关内容