代码之家  ›  专栏  ›  技术社区  ›  Mitya

为什么我的视频转换会导致空文件?

  •  0
  • Mitya  · 技术社区  · 6 年前

    我正在尝试将服务器上的视频从.webm转换为.mp4。

    shell_exec('ffmpeg -i file.webm output.mp4');
    

    This answer 建议显式复制输入编解码器,但结果相同。

    shell_exec('ffmpeg -i file.webm -vcodec copy -acodec-copy output.mp4');
    

    [=======编辑=====]

    在尝试了更多的东西之后,受这些评论的启发,我仍然不喜欢转换成MP4。

    似乎我正在运行FFMPEG v.2.8.15。这似乎比当前版本的4~要低很多,但是我只是在一周前安装的,所以我不知道为什么会这样,我不知道如何更新它(我在WHM Cpanel上)

    无论如何,我的问题不是路径问题,因为如果我将.mp4更改为.webm,同样的命令也可以正常工作-我得到一个成功转换的.webm文件。

    但当我跑的时候:

    $foo = shell_exec('ffmpeg -i file.webm -vcodec copy -acodec copy output3.mp4 -report');
    

    this FFMPEG log output .

    shell_exec('ffmpeg -fflags +genpts -i file.webm -r 24 KKK.mp4 -report');
    

    …从 this answer ,和

    shell_exec('ffmpeg-i file.webm-c:v copy III.mp4');

    this article .

    两者都会导致相同的问题,即0字节的.mp4文件。

    1 回复  |  直到 6 年前
        1
  •  1
  •   llogan    6 年前

    问题

    -strict experimental (或 -strict -2 ),但是你的 ffmpeg 太老了,无法支撑。 Download a new version

    解决

    • ffmpeg -i input -c:v libx264 -c:a aac -movflags +faststart output.mp4
      
    • 或者升级你的 并添加 (或 -严格-2

      ffmpeg -i input -c copy -strict experimental -movflags +faststart output.mp4