【问题标题】:PHP FFmpeg video aspect ratio problemPHP FFmpeg 视频长宽比问题
【发布时间】:2011-04-28 15:07:44
【问题描述】:

我编译了新版本的 FFMPEG,填充命令已被弃用。
当我尝试熟悉新的 -vf pad= 命令时,我想问一下,我该怎么做
转换视频而不改变其纵横比。

我从 stackoverflow 检查了许多解决方案,但似乎没有任何效果。
有人可以,请发布一个有效的 PHP 示例或 cmd 行。我会很高兴的。

请注意,有问题的视频可能是 4:3 也可能是 16:9

假设我将 16:9 视频转换为 640x480 格式。它需要一些酒吧
顶部和底部。这就是我想做的。

谢谢

【问题讨论】:

  • pad 和crop 命令已替换为 -vf pad=x:x:x:x:black 此脚本需要更新。
  • 嗯...当使用 1280x720 输入视频运行此示例代码时,我收到错误 [pad @ 0x7f8a48c1f9e0] 输入区域 0:60:1280:780 不在填充区域 0:0:640 内:480 或零尺寸
  • 我从来没有机会在这样的视频上运行它,真的不知道:(

标签: php ffmpeg aspect-ratio


【解决方案1】:

是否无法检查您要转换的视频的宽高比是多少:

ffmpeg -i input.file

然后在 ffmpeg 命令的-aspect 标志中设置这个?

【讨论】:

  • 问题是,我需要确定宽高比并将 16:9 视频转换为 640x480。它的顶部和底部需要一些黑条。
  • 啊,我明白了。也许这个线程会帮助ubuntuforums.org/showthread.php?t=702188 - 阅读 philc 的回复。
  • 您好,感谢您找到该网址。问题是,pad* 命令已被弃用和删除,所以我不能再使用它们了。我解决了这个问题,并会在接下来的一分钟内更新它。
【解决方案2】:

感谢分享此代码。

我不得不做一个变化:

//keep always the same video size 
//we need to add padding and then crop the same size to keep vieos with same WxH sizes    
$command = FLV_LITE_FFMPEG_PATH . ' -i ' . $original_video;
$command .= ' -s '.FLV_LITE_VIDEO_WIDTH . 'x' .FLV_LITE_VIDEO_HEIGHT;
$command .= ' -croptop ' . $pad_top;
$command .= ' -cropbottom ' . $pad_bottom;
$command .= ' -cropleft ' . $pad_left;
$command .= ' -cropright ' . $pad_right;
$command .= ' -padtop ' . $pad_top;
$command .= ' -padbottom ' . $pad_bottom;
$command .= ' -padleft ' . $pad_left;
$command .= ' -padright ' . $pad_right;
$command .= ' -padcolor 0x000000';
$command .= ' -ab 32 -f flv -ar 22050 -b 256 -r 24 -y';   
$command .= ' ' . $converted_video; 

exec($command, $output, $status);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 2017-10-10
    • 2021-07-01
    • 2010-12-16
    • 2019-12-30
    • 2017-04-13
    • 1970-01-01
    相关资源
    最近更新 更多