Ffmpeg MP4容器中的H.264编码流在WMP12 Windows 7中无法正常播放

Ffmpeg MP4容器中的H.264编码流在WMP12 Windows 7中无法正常播放,ffmpeg,windows-7,mp4,h.264,wmp,Ffmpeg,Windows 7,Mp4,H.264,Wmp,我想找出为什么我的MP4容器中的H.264编码流不能在Windows 7的Windows Media Player 12中正确播放。该文件在VLC和其他播放器(包括Windows10的WMP)中运行良好,但我只是想知道为什么Win7的WMP12不运行它 似乎只显示I型帧,而显示空白的黑色帧,而不是中间的所有p型帧。如果我强制我的设备编码器只生成I型帧,那么文件在WMP12(Win 7)中播放ok,但文件大小增加太多。Windows 7中H.264解码器的限制是什么 我在下面添加了ffprobe-

我想找出为什么我的MP4容器中的H.264编码流不能在Windows 7的Windows Media Player 12中正确播放。该文件在VLC和其他播放器(包括Windows10的WMP)中运行良好,但我只是想知道为什么Win7的WMP12不运行它

似乎只显示I型帧,而显示空白的黑色帧,而不是中间的所有p型帧。如果我强制我的设备编码器只生成I型帧,那么文件在WMP12(Win 7)中播放ok,但文件大小增加太多。Windows 7中H.264解码器的限制是什么

我在下面添加了
ffprobe-show_frames video.mp4
(只有几帧,但ffprobe没有报告错误):

如果您发现这些帧中有任何可能影响播放的错误,请告诉我

编码的H.264流使用飞思卡尔libimxvpuapi创建,MP4容器使用ffmpeg创建

有关该文件的详细信息:

exiftool video.mp4 
ExifTool Version Number         : 10.10
File Name                       : video.mp4
Directory                       : .
File Size                       : 346 kB
File Modification Date/Time     : 2018:10:02 11:27:20+02:00
File Access Date/Time           : 2018:10:02 11:41:14+02:00
File Inode Change Date/Time     : 2018:10:02 11:27:21+02:00
File Permissions                : rw-r--r--
File Type                       : MP4
File Type Extension             : mp4
MIME Type                       : video/mp4
Major Brand                     : MP4  Base Media v1 [IS0 14496-12:2003]
Minor Version                   : 0.2.0
Compatible Brands               : isom, iso2, avc1, mp41
Movie Data Size                 : 351479
Movie Data Offset               : 48
Movie Header Version            : 0
Create Date                     : 0000:00:00 00:00:00
Modify Date                     : 0000:00:00 00:00:00
Time Scale                      : 1000
Duration                        : 5.51 s
Preferred Rate                  : 1
Preferred Volume                : 100.00%
Preview Time                    : 0 s
Preview Duration                : 0 s
Poster Time                     : 0 s
Selection Time                  : 0 s
Selection Duration              : 0 s
Current Time                    : 0 s
Next Track ID                   : 2
Track Header Version            : 0
Track Create Date               : 0000:00:00 00:00:00
Track Modify Date               : 0000:00:00 00:00:00
Track ID                        : 1
Track Duration                  : 5.51 s
Track Layer                     : 0
Track Volume                    : 0.00%
Matrix Structure                : 1 0 0 0 1 0 0 0 1
Image Width                     : 720
Image Height                    : 480
Media Header Version            : 0
Media Create Date               : 0000:00:00 00:00:00
Media Modify Date               : 0000:00:00 00:00:00
Media Time Scale                : 90000
Media Duration                  : 5.51 s
Media Language Code             : und
Handler Description             : VideoHandler
Graphics Mode                   : srcCopy
Op Color                        : 0 0 0
Compressor ID                   : avc1
Source Image Width              : 720
Source Image Height             : 480
X Resolution                    : 72
Y Resolution                    : 72
Bit Depth                       : 24
Video Frame Rate                : 30.109
Handler Type                    : Metadata
Handler Vendor ID               : Apple
Encoder                         : Lavf57.83.100
Avg Bitrate                     : 510 kbps
Image Size                      : 720x480
Megapixels                      : 0.346
Rotation                        : 0
非常感谢

请在此处查找视频示例:


我发现如果我添加:

if (this->keyFrame) {
    pAVPacket->flags |= AV_PKT_FLAG_KEY;
}

然后该文件在WMP Win 7中也能很好地播放。关键帧缺少此标志。

我发现如果添加:

if (this->keyFrame) {
    pAVPacket->flags |= AV_PKT_FLAG_KEY;
}

然后该文件在WMP Win 7中也能很好地播放。我缺少关键帧的此标志。

你能提供一个示例文件吗?@LordNeckbeard我添加了一个带有示例文件的链接。你能提供一个示例文件吗?@LordNeckbeard我添加了一个带有示例文件的链接。我检查了你的示例视频文件。没有atom同步示例帧。我检查了您的示例视频文件。没有atom同步示例帧。