【问题标题】:PHP FFMPEG - Convert .mov to .mp4 (H264)PHP FFMPEG - 将 .mov 转换为 .mp4 (H264)
【发布时间】:2019-11-05 21:01:18
【问题描述】:

我最近在服务器上安装了 PHP-FFMpeg 库并使用了以下教程: https://github.com/PHP-FFMpeg/PHP-FFMpeg

我设法将 .mov 视频(通过移动设备上传)转换为 webm 和 ogg,但在编码为 mp4 时,我总是从错误对象中收到“编码失败”消息(在 try catch 中)。

这是我在实例化 FFMPEG 后使用的代码

    $video->filters()->resize(new FFMpeg\Coordinate\Dimension(756, 461), $mode = RESIZEMODE_SCALE_WIDTH)->synchronize();

$video->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10))->save('sites/default/files/videos/thumbnails/'.$filename.'.jpg');

$video->save(new FFMpeg\Format\Video\Ogg(), 'sites/default/files/videos/'.$filename.'.ogg')
      ->save(new FFMpeg\Format\Video\X264(), 'sites/default/files/videos/'.$filename.'.mp4')
      ->save(new FFMpeg\Format\Video\WebM(), 'sites/default/files/videos/'.$filename.'.webm');

感谢您的帮助!

【问题讨论】:

  • github 页面说您需要在系统路径中安装 FFMpeg 和 FFProbe(否则明确定义路径)。你确定你已经这样做了吗?
  • 是的!一切都从这一侧开始运行。顺便说一句,我设法通过这种方法将视频转换为 MP4: exec("ffmpeg -i sites/default/files/videos/originals/video.mov -vcodec copy -acodec copy sites/default/files/videos/video. mp4");虽然让它与图书馆一起工作会很棒。感谢您的回复!
  • 恐怕我对库的了解不够,无法帮助您,但如果您使用 exec() 执行此操作,请确保绝对清理来自用户输入的任何内容。

标签: php ffmpeg backend ffmpeg-php


【解决方案1】:

如果有人遇到这种情况并需要使用 FFMpeg 将 MOV 转换为 MP4,正确的方法是:

  $ffmpeg = FFMpeg\FFMpeg::create();

  $video = $ffmpeg->open('path/to/movie.mov');
  $format = new FFMpeg\Format\Video\X264();
  $format->setAudioCodec("libmp3lame");

 $video
     ->save($format, 'path/to/movie.mp4');

找到答案here

【讨论】:

  • 从链接的答案中收集,关键是除了视频编解码器之外,您还必须设置兼容的音频编解码器。 (我不确定如果尝试像这样设置编解码器$format = new FFMpeg\Format\Video\X264('libmp3lame', 'libx264');,为什么它会中断)
猜你喜欢
  • 1970-01-01
  • 2012-08-15
  • 2013-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-14
  • 2015-09-03
  • 2017-02-16
相关资源
最近更新 更多