【问题标题】:How to process a video to mp4 with ffmpeg for quality and compatibility?如何使用 ffmpeg 将视频处理为 mp4 以获得质量和兼容性?
【发布时间】:2018-07-07 07:48:24
【问题描述】:

我开始对视频更加认真。我正在将我在完全更新的 Linux 中使用 ffmpeg 的视频处理成 mp4,以便直接在 HTML5 中使用。

现在,我有旧的 AVI 视频,我想使用 ffmpeg 将其转换为 mp4 以用于 HTML5。特别是我有这个:

http://luis.impa.br/photo/1101_aves_ce/caneleiro-de-chapeu-preto_femea_Quixada-CE-110126-E_05662+7a.avi

(我知道,质量很差……抱歉)。根据ffprobe

Duration: 00:01:35.30, start: 0.000000, bitrate: 1284 kb/s
Stream #0:0: Video: mpeg4 (Simple Profile) (DX50 / 0x30355844), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1144 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, s16p, 128 kb/s

这看起来很完美:mpeg4 视频和 mp3 音频。所以我尝试了:

ffmpeg -i input.avi -acodec copy -vcodec copy output.mp4

它生成的文件在mplayer 中播放良好,但在firefox 中却没有出现错误:

Video format or MIME type not supported.

Chrome 播放音频,但没有显示视频...现在,如果我这样做:

ffmpeg -i input.avi output.mp4

firefox 可以工作,但视频被重新编码为另一个大小的一半(比特率的一半)。这就是ffprobe 对重新编码视频的评价:

major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf57.71.100
Duration: 00:01:35.30, start: 0.000000, bitrate: 685 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 548 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)

我想我失去了很多质量(以及处理视频的时间)。所以,我的问题:

  1. 为什么浏览器不使用copy 编解码器播放我的视频?

  2. 我可以在这个特定文件中使用ffmpeg 而无需重新编码吗?如果是,怎么做?

  3. 如果我需要重新编码,哪些是“合理”的参数以保持接近原始质量?会像

    ffmpeg -i input.avi -b:v 1024k -bufsize 1024k output.mp4

这个视频够了吗?这会生成一个尺寸更接近原始视频的新视频。

谢谢!

【问题讨论】:

    标签: ffmpeg html5-video video-encoding


    【解决方案1】:

    根据 ffprobe,如果我没看错,你有一个 DivX (5) 视频文件。不要用它来上网!! ;)

    mpeg4 (Simple Profile) (DX50 / 0x30355844)
    

    因此,如果不重新编码,我看不到任何使用此视频的机会。如果您想支持 Firefox,则不要。

    使用 WebMh264https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats

    更新

    重新编码的良好设置取决于您的输入(比特率、分辨率、fps、材料种类...),因此没有标准答案。

    但是你必须指定一个编解码器或 ffmpeg 根据你的输出文件扩展名选择一个(所以它可能是错误的)。

    你可以试试这个:

    ffmpeg -i input.avi -c:v libx264 -preset slow -crf 22 -c:a copy output.mkv
    

    预设和曲调可以帮助找到最佳选择:https://trac.ffmpeg.org/wiki/Encode/H.264

    【讨论】:

      猜你喜欢
      • 2012-06-20
      • 2012-11-27
      • 1970-01-01
      • 2016-12-23
      • 2019-07-31
      • 1970-01-01
      • 2013-03-15
      • 2012-02-20
      • 2018-02-14
      相关资源
      最近更新 更多