【问题标题】:convert from avi to mp4 using ffmpeg使用 ffmpeg 从 avi 转换为 mp4
【发布时间】:2022-01-15 03:38:21
【问题描述】:

我想使用 HTML5 视频代码在浏览器中播放 avi 视频格式文件。由于 avi 格式文件在浏览器中无法播放,我必须将其转换为 mp4 格式文件。

对于转换,我在 Windows 中使用ffmpeg 代码。

ffmpeg -i input.avi OUTPUT.mp4

视频转换完成,但视频编解码和音频编解码无效,无法使用html5中的video标签播放。

请给我找到合适的代码来隐藏文件。 我尝试的另一个转换代码是.. ffmpeg -i input.avi -c:v libx264 -preset slow -crf 22 -c:a libfaac -b:a 128k OUTPUTAVINew.mp4 但我得到了错误,因为 libfaac 未知编码器 请帮帮我,甚至我下载了**libfaac.dll**,但没有成功 `

【问题讨论】:

  • 找到一个可以运行的视频,然后用相同的编解码器对您的视频进行编码,很简单。要获取信息,请使用以下 cmd ffmpeg -i mymovie.avi,其中 mymovie.avi 将替换为您的视频名称。

标签: html video ffmpeg


【解决方案1】:

旧的,但这篇文章在搜索中排名靠前,所以......

ffmpeg 应该可以轻松地从 avi 转换为 mp4无需重新编码。 (不要指定新的编解码器!)

ffmpeg -i input.avi -c:v copy -c:a copy OUTPUT.mp4

还应提及,当脚本包含静态数据且每个 ffmpeg 调用都在新行上时(而不是让脚本使用变量动态生成每个调用),批量转换运行最可靠。

【讨论】:

    【解决方案2】:

    我建议您使用最新版本的ffmpeg。你不 需要下载额外的dll。

    使用libvo_aacenc 而不是libfaac

    -crf 22 是高使用低说-crf 19

    根据我的经验,我会使用

    ffmpeg -i input.avi -c:v libx264 -preset slow -crf 19 -c:a libvo_aacenc -b:a 128k
    

    【讨论】:

      【解决方案3】:

      从 avi 到 mp4.ffmpeg 的代码提供了最佳解决方案

      ffmpeg -i input.avi -strict -2 output.mp4
      

      【讨论】:

      • 提问者已经尝试过了(除了适当地省略不需要的-strict -2)。你的回答有什么不同?
      【解决方案4】:

      比如有个视频文件139MB input.avi

      ffprobe input.avi
      Input #0, avi, from 'input.avi':
        Metadata:
          encoder         : Lavf51.12.1
        Duration: 00:21:20.16, start: 0.000000, bitrate: 891 kb/s
          Stream #0:0: Video: mpeg4 (Simple Profile) (xvid / 0x64697678), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 769 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
          Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 32000 Hz, stereo, fltp, 112 kb/s
      

      对于几乎无损的重新容器使用:

      ffmpeg -i "input.avi" -c:v copy -c:a copy "input.mp4"
      

      在哪里-c:v copy复制视频 -c:a copy复制音频

      转换约 2 秒,结果为 input.mp4 138MB。它速度快,质量几乎与原版相同。 最佳做法是让音频保持原始格式。

      ffprobe input.mp4
        Metadata:
          major_brand     : isom
          minor_version   : 512
          compatible_brands: isomiso2mp41
          encoder         : Lavf58.29.100
        Duration: 00:21:20.16, start: 0.000000, bitrate: 884 kb/s
          Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 769 kb/s, 25 fps, 25 tbr, 12800 tbn, 25 tbc (default)
          Metadata:
            handler_name    : VideoHandler
          Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 32000 Hz, stereo, fltp, 112 kb/s (default)
          Metadata:
            handler_name    : SoundHandler
      

      如果您有时间,并且想重新解码几乎相同的质量,但大小为 1/3,请使用:

      ffmpeg -i "input.avi" -c:a copy -c:v vp9 -b:v 100K "input.vp9.mp4"
      

      -c:a copy 复制音频-c:v vp9 -b:v 100K 以 100K 比特率重新编码视频。 138MB 重新编码大约需要 40 分钟,新文件大小为 41MB,质量几乎与原始文件相同,但有点像素化。

      ffprobe input.vp9.mp4
        Metadata:
          major_brand     : isom
          minor_version   : 512
          compatible_brands: isomiso2mp41
          encoder         : Lavf58.29.100
        Duration: 00:21:20.16, start: 0.000000, bitrate: 261 kb/s
          Stream #0:0(und): Video: vp9 (Profile 0) (vp09 / 0x39307076), yuv420p(tv, progressive), 640x480, 146 kb/s, SAR 1:1 DAR 4:3, 25 fps, 25 tbr, 12800 tbn, 12800 tbc (default)
          Metadata:
            handler_name    : VideoHandler
          Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 32000 Hz, stereo, fltp, 112 kb/s (default)
          Metadata:
            handler_name    : SoundHandler
      

      【讨论】:

        猜你喜欢
        • 2014-07-12
        • 2014-11-04
        • 2013-03-24
        • 2019-02-18
        • 2015-08-20
        • 2017-05-21
        • 2018-12-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多