2014-01-21 516 views
0

在iPhone中开发视频压缩功能。我开发了这个功能,但是关于比特率计算的一些混淆。如何计算视频比特率?

我使用波纹管方法进行视频压缩。

1. AVAsset 
2. AVAssetTrack 
3. AVAssetWriterInput 
4. AVAssetWriter 
5. AVAssetReader 
6. AVAssetReaderOutput 
7. AVAssetTrack 
8. AVAssetReader 

我们可以得到原始视频的视频比特率吗?

+0

http://stackoverflow.com/questions/18199018/programatically-get-the-bitrate-of-an-audio-file http://stackoverflow.com/questions/2159663/how -to-get-specific-information-about-media-files-duration-bitrate-fps-etc – Tirth

+0

http://stackoverflow.com/questions/4929825/how-can-i-read-the-properties-of-an -audio-文件的目标-C换IOS – Tirth

回答

1

通过AVAsset的轨道循环,确定它是什么样的音轨(音频/视频),并使用AVAssetTrack的“estimatedDataRate”属性来获取文件的平均比特率。事情是这样的:

AVAsset *asset = [AVAsset assetWithURL:url]; 
for(AVAssetTrack *track in asset.tracks) 
{ 
    if([track.mediaType isEqual:AVMediaTypeVideo]) 
    { 
     videoBitrate = track.estimatedDataRate; 
    } 
    if([track.mediaType isEqual:AVMediaTypeAudio]) 
    { 
     audioBitrate = track.estimatedDataRate; 
    } 
}