KSYMediaInfo.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. //
  2. // KSYMediaInfo.h
  3. // IJKMediaPlayer
  4. //
  5. // Created by 施雪梅 on 16/7/3.
  6. // Copyright © 2016年 kingsoft. All rights reserved.
  7. //
  8. #ifndef KSYMediaInfo_h
  9. #define KSYMediaInfo_h
  10. #import <Foundation/Foundation.h>
  11. /**
  12. * 封装格式
  13. */
  14. typedef NS_ENUM(NSInteger, MEDIAINFO_MUX_TYPE) {
  15. ///未知的文件封装格式
  16. MEDIAINFO_MUXTYPE_UNKNOWN,
  17. ///封装格式为TS
  18. MEDIAINFO_MUXTYPE_MP2T,
  19. ///封装格式为MOV
  20. MEDIAINFO_MUXTYPE_MOV,
  21. ///封装格式为AVI
  22. MEDIAINFO_MUXTYPE_AVI,
  23. ///封装格式为FLV
  24. MEDIAINFO_MUXTYPE_FLV,
  25. ///封装格式为MKV
  26. MEDIAINFO_MUXTYPE_MKV,
  27. ///封装格式为ASF
  28. MEDIAINFO_MUXTYPE_ASF,
  29. ///封装格式为RM
  30. MEDIAINFO_MUXTYPE_RM,
  31. ///封装格式为WAV
  32. MEDIAINFO_MUXTYPE_WAV,
  33. ///封装格式为OGG
  34. MEDIAINFO_MUXTYPE_OGG,
  35. ///封装格式为APE
  36. MEDIAINFO_MUXTYPE_APE,
  37. ///封装格式为RAWVIDEO
  38. MEDIAINFO_MUXTYPE_RAWVIDEO,
  39. ///封装格式为HLS
  40. MEDIAINFO_MUXTYPE_HLS,
  41. };
  42. /**
  43. * 音视频格式
  44. */
  45. typedef NS_ENUM(NSInteger, MEDIAINFO_CODEC_ID) {
  46. ///未知的音视频编码格式
  47. MEDIAINFO_CODEC_ID_UNKNOWN,
  48. ///视频编码格式MPEG2
  49. MEDIAINFO_CODEC_MPEG2VIDEO,
  50. ///视频编码格式MPEG4
  51. MEDIAINFO_CODEC_MPEG4,
  52. ///视频编码格式MJPEG
  53. MEDIAINFO_CODEC_MJPEG,
  54. ///视频编码格式JPEG2000
  55. MEDIAINFO_CODEC_JPEG2000,
  56. ///视频编码格式H264
  57. MEDIAINFO_CODEC_H264,
  58. ///视频编码格式HEVC
  59. MEDIAINFO_CODEC_HEVC,
  60. ///视频编码格式VC1
  61. MEDIAINFO_CODEC_VC1,
  62. ///首个音频编码格式定义(不对应具体的编码格式)
  63. MEDIAINFO_CODEC_ID_FIRST_AUDIO = 0x10000,
  64. ///音频编码格式AAC
  65. MEDIAINFO_CODEC_AAC,
  66. ///音频编码格式AC3
  67. MEDIAINFO_CODEC_AC3,
  68. ///音频编码格式MP3
  69. MEDIAINFO_CODEC_MP3,
  70. ///音频编码格式PCM
  71. MEDIAINFO_CODEC_PCM,
  72. ///音频编码格式DTS
  73. MEDIAINFO_CODEC_DTS,
  74. ///音频编码格式NELLYMOSER
  75. MEDIAINFO_CODEC_NELLYMOSER,
  76. };
  77. /**
  78. * 音频采样格式
  79. */
  80. typedef NS_ENUM(NSInteger, MEDIAINFO_SAMPLE_FMT){
  81. ///未知的音频采样格式
  82. MEDIAINFO_SAMPLE_FMT_UNKNOWN,
  83. ///音频采样格式为unsigned 8 bits
  84. MEDIAINFO_SAMPLE_FMT_U8,
  85. ///音频采样格式为signed 16 bits
  86. MEDIAINFO_SAMPLE_FMT_S16,
  87. ///音频采样格式为signed 32 bits
  88. MEDIAINFO_SAMPLE_FMT_S32,
  89. ///音频采样格式为float
  90. MEDIAINFO_SAMPLE_FMT_FLT,
  91. ///音频采样格式为double
  92. MEDIAINFO_SAMPLE_FMT_DBL,
  93. ///音频采样格式为unsigned 8 bits, planar
  94. MEDIAINFO_SAMPLE_FMT_U8P,
  95. ///音频采样格式为signed 16 bits, planar
  96. MEDIAINFO_SAMPLE_FMT_S16P,
  97. ///音频采样格式为signed 32 bits, planar
  98. MEDIAINFO_SAMPLE_FMT_S32P,
  99. ///音频采样格式为float, planar
  100. MEDIAINFO_SAMPLE_FMT_FLTP,
  101. ///音频采样格式为double, planar
  102. MEDIAINFO_SAMPLE_FMT_DBLP,
  103. ///音频采样格式为Number of sample formats
  104. MEDIAINFO_SAMPLE_FMT_NB,
  105. };
  106. /**
  107. * 视频信息
  108. */
  109. @interface KSYVideoInfo : NSObject
  110. /**
  111. 视频编码格式, 具体类型为MEDIAINFO_CODEC_ID
  112. */
  113. @property (nonatomic) MEDIAINFO_CODEC_ID vcodec;
  114. /**
  115. 视频帧宽度
  116. */
  117. @property (nonatomic, assign) int32_t frame_width;
  118. /**
  119. 视频帧高度
  120. */
  121. @property (nonatomic, assign) int32_t frame_height;
  122. @end
  123. /**
  124. * 音频信息
  125. */
  126. @interface KSYAudioInfo : NSObject
  127. /**
  128. 音频编码格式, 具体类型为MEDIAINFO_CODEC_ID
  129. */
  130. @property (nonatomic) MEDIAINFO_CODEC_ID acodec;
  131. /**
  132. 音频语言, 如chinese, english...
  133. */
  134. @property (nonatomic) NSString *language;
  135. /**
  136. 音频码率
  137. */
  138. @property (nonatomic, assign) int64_t bitrate;
  139. /**
  140. 声道数
  141. */
  142. @property (nonatomic, assign) int32_t channels;
  143. /**
  144. 音频采样率
  145. */
  146. @property (nonatomic, assign) int32_t samplerate;
  147. /**
  148. 音频采样格式, 具体类型为MEDIAINFO_SAMPLE_FMT
  149. */
  150. @property (nonatomic, assign) MEDIAINFO_SAMPLE_FMT sample_format;
  151. /**
  152. 音频帧大小
  153. */
  154. @property (nonatomic, assign) int32_t framesize;
  155. @end
  156. /**
  157. * 媒体信息
  158. */
  159. @interface KSYMediaInfo : NSObject
  160. /**
  161. 封装格式,具体类型为MEDIAINFO_MUX_TYPE
  162. */
  163. @property (nonatomic) MEDIAINFO_MUX_TYPE type;
  164. /**
  165. 码率
  166. */
  167. @property (nonatomic, assign) int64_t bitrate;
  168. /**
  169. 视频总时长,单位是秒
  170. */
  171. @property (nonatomic, assign) NSTimeInterval duration;
  172. /**
  173. 所有视频流信息,具体对象类型为KSYVideoInfo
  174. */
  175. @property (nonatomic) NSMutableArray *videos;
  176. /**
  177. 所有音频流信息,具体对象类型为KSYAudioInfo
  178. */
  179. @property (nonatomic) NSMutableArray *audios;
  180. @end
  181. #endif /* KSYMediaInfo_h */