如何配置ffmpeg& openh264以便可以在Windows Media Player 12

时间:2017-03-09 14:56:55

标签: ffmpeg windows-media-player openh264

我已成功使用ffmpeg和x264库创建了h264 / mp4电影文件。

现在我想将h264库从x264更改为openH264。我可以用openH264替换x264库,重新编译ffmpeg并生成电影文件,而无需更改生成电影的源。生成的影片在Mac上的Quicktime中打开正常,但在Windows上,Windows Media Player 12无法播放。

有关Windows Media Player支持h264的文档尚不清楚。表中File types supported by Windows Media Player表示Windows Media Player 12支持mp4,但下面的文字说明:

  

Windows Media Player不支持播放.mp4文件格式。

根据我的观察,Windows Media Player 12 IS 能够播放h264 / mp4文件,但仅限于使用x264创建时。

有谁知道我需要如何调整编解码器/上下文的配置,以便电影在Windows Media Player中播放? Windows Media Player是否仅支持某些h264配置文件?

我注意到了警告:

[libopenh264 @ 0x ...] [OpenH264] this = 0x ...,警告:bEnableFrameSkip = 0,RC_QUALITY_MODE,RC_BITRATE_MODE和RC_TIMESTAMP_MODE无法控制比特率而不启用跳帧

配置:

av_dict_set(&options, "allow_skip_frames", "1", 0);

我可以摆脱这个警告,但电影仍然无法播放。是否还需要设置其他选项才能在Windows Media Player中播放影片?

感谢您的帮助

在Windows Media Player中正常播放的文件的ffprobe输出:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test_x264.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : retina
    encoder         : Lavf57.56.100
    comment         : Creation Date: 2017-03-10 07:47:39.601
  Duration: 00:00:04.17, start: 0.000000, bitrate: 17497 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661),
      yuv420p, 852x754, 17495 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
    Metadata:
      handler_name    : VideoHandler

在Windows Media Player中无法播放的文件的ffprobe输出:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test_openh264.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : retina
    encoder         : Lavf57.56.100
    comment         : Creation Date: 2017-03-10 07:49:27.024
  Duration: 00:00:04.17, start: 0.000000, bitrate: 17781 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661),
      yuv420p, 852x754, 17779 kb/s, 24 fps, 24 tbr, 24k tbn, 48k tbc (default)
    Metadata:
      handler_name    : VideoHandler

0 个答案:

没有答案