Ffmpeg 加速视频编码

Ffmpeg 加速视频编码,ffmpeg,video-encoding,ffprobe,Ffmpeg,Video Encoding,Ffprobe,我的任务是从输入视频(.avi、.mov、.mp4等)创建与html5兼容的视频。我的理解是,我的输出应该是.webm或.mp4(H264视频,aac音频)。 我使用ffmpeg进行转换,这需要很多时间。我想知道我是否可以使用ffprobe来测试输入视频是否为“H264”和“aac”,如果是这样的话,也许我可以将视频/音频复制到输出中而不做任何修改 也就是说,我有下一个想法: 使用ffprobe获取输入视频信息: 结果将是JSON,如下所示: "streams": [ {codec_name=

我的任务是从输入视频(.avi、.mov、.mp4等)创建与html5兼容的视频。我的理解是,我的输出应该是.webm或.mp4(H264视频,aac音频)。 我使用ffmpeg进行转换,这需要很多时间。我想知道我是否可以使用ffprobe来测试输入视频是否为“H264”和“aac”,如果是这样的话,也许我可以将视频/音频复制到输出中而不做任何修改

也就是说,我有下一个想法:

  • 使用ffprobe获取输入视频信息:
  • 结果将是JSON,如下所示:

    "streams": [
     {codec_name="mjpeg",codec_type="video"},
     {codec_name="aac",codec_type="audio"}
    ]
    
  • 若JSON告诉我视频编解码器是h264,那个么我想我可以复制视频流。若JSON告诉我们音频编解码器是h264 aac,那个么我想我可以复制音频流
  • 上面的JSON告诉我,我的音频是“aac”。所以我想我可以将音频流复制到输出视频中,但仍然需要视频流转换。对于上面的示例,我的ffmpeg命令如下:
  • 问题是,我是否可以始终使用这种想法来制作与html5兼容的视频,以及这种方法是否真的会加快视频转换

    问题是,我是否可以始终使用这个想法来制作与html5兼容的视频

    可能吧,但有一些警告:

    • 您的输出可能使用H.264 High-profile,但您的目标设备可能不支持该功能(但现在不太可能)
    • 确保像素格式为yuv420p。如果不是,则可能无法播放,您必须使用
      -vf format=yuv420p
      重新编码。您可以在
      -show\u条目流中使用
      pix\u fmt
      进行检查
    • 如果文件直接来自摄像机或其他编码效率低下的设备,则文件大小对于您的查看器可能过大
    • -movflags+faststart
      添加到命令中,以便在文件完全下载之前开始播放视频
    如果这种方法真的能加速视频转换

    是的,因为您只对快速的流进行了(重新复用),而没有对缓慢的部分/所有流进行重新编码

    "streams": [
     {codec_name="mjpeg",codec_type="video"},
     {codec_name="aac",codec_type="audio"}
    ]
    
    ffmpeg -i {input} -c:v libx264 -c:a copy ouput.mp4