iOS:AVPlayer显示黑屏,无法播放一些mp4视频

时间:2015-02-28 06:11:42

标签: ios video avfoundation mp4 avplayer

我在AVFoundation中使用AVPlayer在我的应用中播放mp4视频。大多数玩家都可以。但是这两天我遇到了播放器无法播放的.mp4文件。它显示黑屏但没有任何图片。我很迷茫。 这是.mp4文件的元数据。

General
Complete name                    : E:\test.mp4
Format                           : MPEG-4
Format profile                   : Base Media
Codec ID                         : isom
File size                        : 28.2 MiB
Duration                         : 1mn 30s
Overall bit rate                 : 2 613 Kbps
Encoded date                     : UTC 2015-01-09 13:55:04
Tagged date                      : UTC 2015-01-09 13:55:04

Video
ID                               : 1
Format                           : AVC
Format/Info                      : Advanced Video Codec
Format profile                   : High@L4.1
Format settings, CABAC           : Yes
Format settings, ReFrames        : 1 frame
Muxing mode                      : Container profile=High@1.3
Codec ID                         : avc1
Codec ID/Info                    : Advanced Video Coding
Duration                         : 1mn 27s
Bit rate mode                    : Variable
Bit rate                         : 2 675 Kbps
Width                            : 756 pixels
Height                           : 1 260 pixels
Display aspect ratio             : 0.600
Frame rate mode                  : Variable
Frame rate                       : 54.536 fps
Minimum frame rate               : 4.646 fps
Maximum frame rate               : 148.515 fps
Color space                      : YUV
Chroma subsampling               : 4:2:0
Bit depth                        : 8 bits
Scan type                        : Progressive
Bits/(Pixel*Frame)               : 0.051
Stream size                      : 27.9 MiB (99%)
Title                            : VideoHandle
Language                         : English
Encoded date                     : UTC 2015-01-09 13:55:04
Tagged date                      : UTC 2015-01-09 13:55:04

Audio
ID                               : 2
Format                           : AMR
Format/Info                      : Adaptive Multi-Rate
Format profile                   : Narrow band
Codec ID                         : samr
Duration                         : 1mn 30s
Bit rate mode                    : Constant
Bit rate                         : 12.8 Kbps
Channel(s)                       : 1 channel
Sampling rate                    : 8 000 Hz
Bit depth                        : 13 bits
Stream size                      : 141 KiB (0%)
Title                            : SoundHandle
Writing library                  :    
Language                         : English
Encoded date                     : UTC 2015-01-09 13:55:04
Tagged date                      : UTC 2015-01-09 13:55:04

2 个答案:

答案 0 :(得分:1)

我终于找到了解决方案。设置avplayerItem的videoCompostion后,它可以正常工作。 videoComposition的内容实际上与视频相同。所以它在内存中播放预览合成而不是视频文件。这是一个技巧。但是我仍然不知道为什么avplayer会显示黑屏。

答案 1 :(得分:-1)

正如对此的补充,mp4文件有时无法在AVPlayer中播放的一个原因归结为一个复选框。

当您拖放以将视频文件添加到XCode项目时,面板会显示一些选项。其中一个选项是"添加到目标:"。

from XCode: dragging and dropping a video file

使用.MOV文件,您无需选中此复选框。使用所有其他文件格式,您需要选中此复选框。

所以,也许如果你像我一样,你花了一天左右的时间,探究AVAsset等等,试图弄清楚文件为什么似乎没有加载。

这就是答案。复选框。只有mp4,而不是MOV。

因为,Apple。