• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# AVMuxer
2
3
4## 概述
5
6AVMuxer模块提供用于音视频封装功能的函数。
7
8\@syscap SystemCapability.Multimedia.Media.Muxer
9
10**起始版本:**
11
1210
13
14
15## 汇总
16
17
18### 文件
19
20| 名称 | 描述 |
21| -------- | -------- |
22| [native_avmuxer.h](native__avmuxer_8h.md) | 声明用于音视频封装的Native API。<br>**引用文件**:<multimedia/player_framework/native_avmuxer.h> <br>**库**:libnative_media_avmuxer.so |
23
24
25### 函数
26
27| 名称 | 描述 |
28| -------- | -------- |
29| \*[OH_AVMuxer_Create](#oh_avmuxer_create) (int32_t fd, OH_AVOutputFormat format) | 通过文件描述符fd和封装格式创建OH_AVMuxer实例。 |
30| [OH_AVMuxer_SetRotation](#oh_avmuxer_setrotation) (OH_AVMuxer \*muxer, int32_t rotation) | 设置视频的旋转角度(顺时针)。 |
31| [OH_AVMuxer_AddTrack](#oh_avmuxer_addtrack) (OH_AVMuxer \*muxer, int32_t \*trackIndex, OH_AVFormat \*trackFormat) | 向封装器添加媒体轨。 |
32| [OH_AVMuxer_Start](#oh_avmuxer_start) (OH_AVMuxer \*muxer) | 开始封装。 |
33| [OH_AVMuxer_WriteSample](#oh_avmuxer_writesample) (OH_AVMuxer \*muxer, uint32_t trackIndex, OH_AVMemory \*sample, OH_AVCodecBufferAttr info) | 将数据写入封装器。 |
34| [OH_AVMuxer_Stop](#oh_avmuxer_stop) (OH_AVMuxer \*muxer) | 停止封装。 |
35| [OH_AVMuxer_Destroy](#oh_avmuxer_destroy) (OH_AVMuxer \*muxer) | 清理内部资源,销毁OH_AVMuxer实例。 |
36
37
38## 函数说明
39
40
41### OH_AVMuxer_AddTrack()
42
43
44```
45OH_AVErrCode OH_AVMuxer_AddTrack (OH_AVMuxer *muxer, int32_t *trackIndex, OH_AVFormat *trackFormat)
46```
47
48**描述:**
49
50向封装器添加媒体轨。
51
52该接口必须在OH_AVMuxer_Start前调用。
53
54\@syscap SystemCapability.Multimedia.Media.Muxer
55
56**参数:**
57
58  | 名称 | 描述 |
59| -------- | -------- |
60| muxer | 指向OH_AVMuxer实例的指针。 |
61| trackIndex | 用于获取该轨的索引,该值在OH_AVMuxer_WriteSample接口中使用。 如果媒体轨添加成功,该值大于或等于0,否则小于0。 |
62| trackFormat | 指向OH_AVFormat实例的指针。 |
63
64**返回:**
65
66执行成功返回AV_ERR_OK,否则返回具体错误码,参考[OH_AVErrCode](_core.md#oh_averrcode-1)。
67
68**起始版本:**
69
7010
71
72
73### OH_AVMuxer_Create()
74
75
76```
77OH_AVMuxer* OH_AVMuxer_Create (int32_t fd, OH_AVOutputFormat format)
78```
79
80**描述:**
81
82通过文件描述符fd和封装格式创建OH_AVMuxer实例。
83
84\@syscap SystemCapability.Multimedia.Media.Muxer
85
86**参数:**
87
88  | 名称 | 描述 |
89| -------- | -------- |
90| fd | 用读写方式打开(O_RDWR),由调用者关闭该fd。 |
91| format | 封装输出的文件格式,参考[OH_AVOutputFormat](_codec_base.md#oh_avoutputformat)。 |
92
93**返回:**
94
95返回一个指向OH_AVMuxer实例的指针, 需要调用OH_AVMuxer_Destroy销毁。
96
97**起始版本:**
98
9910
100
101
102### OH_AVMuxer_Destroy()
103
104
105```
106OH_AVErrCode OH_AVMuxer_Destroy (OH_AVMuxer *muxer)
107```
108
109**描述:**
110
111清理内部资源,销毁OH_AVMuxer实例。
112
113\@syscap SystemCapability.Multimedia.Media.Muxer
114
115**参数:**
116
117  | 名称 | 描述 |
118| -------- | -------- |
119| muxer | 指向OH_AVMuxer实例的指针。 |
120
121**返回:**
122
123执行成功返回AV_ERR_OK,需调用者置空muxer;否则返回具体错误码,参考[OH_AVErrCode](_core.md#oh_averrcode-1)。
124
125**起始版本:**
126
12710
128
129
130### OH_AVMuxer_SetRotation()
131
132
133```
134OH_AVErrCode OH_AVMuxer_SetRotation (OH_AVMuxer *muxer, int32_t rotation)
135```
136
137**描述:**
138
139设置视频的旋转角度(顺时针)。
140
141这个接口必须在OH_AVMuxer_Start前调用。
142
143\@syscap SystemCapability.Multimedia.Media.Muxer
144
145**参数:**
146
147  | 名称 | 描述 |
148| -------- | -------- |
149| muxer | 指向OH_AVMuxer实例的指针。 |
150| rotation | 角度,必须为0、90、180 或 270。 |
151
152**返回:**
153
154执行成功返回AV_ERR_OK,否则返回具体错误码,参考[OH_AVErrCode](_core.md#oh_averrcode-1)。
155
156**起始版本:**
157
15810
159
160
161### OH_AVMuxer_Start()
162
163
164```
165OH_AVErrCode OH_AVMuxer_Start (OH_AVMuxer *muxer)
166```
167
168**描述:**
169
170开始封装。
171
172该接口必须在OH_AVMuxer_AddTrack后,OH_AVMuxer_WriteSample前调用。
173
174\@syscap SystemCapability.Multimedia.Media.Muxer
175
176**参数:**
177
178  | 名称 | 描述 |
179| -------- | -------- |
180| muxer | 指向OH_AVMuxer实例的指针。 |
181
182**返回:**
183
184执行成功返回AV_ERR_OK,否则返回具体错误码,参考[OH_AVErrCode](_core.md#oh_averrcode-1)。
185
186**起始版本:**
187
18810
189
190
191### OH_AVMuxer_Stop()
192
193
194```
195OH_AVErrCode OH_AVMuxer_Stop (OH_AVMuxer *muxer)
196```
197
198**描述:**
199
200停止封装。
201
202封装器一旦停止,不能重新开始。
203
204\@syscap SystemCapability.Multimedia.Media.Muxer
205
206**参数:**
207
208  | 名称 | 描述 |
209| -------- | -------- |
210| muxer | 指向OH_AVMuxer实例的指针。 |
211
212**返回:**
213
214执行成功返回AV_ERR_OK,否则返回具体错误码,参考[OH_AVErrCode](_core.md#oh_averrcode-1)。
215
216**起始版本:**
217
21810
219
220
221### OH_AVMuxer_WriteSample()
222
223
224```
225OH_AVErrCode OH_AVMuxer_WriteSample (OH_AVMuxer *muxer, uint32_t trackIndex, OH_AVMemory *sample, OH_AVCodecBufferAttr info)
226```
227
228**描述:**
229
230将数据写入封装器。
231
232该接口必须在OH_AVMuxer_Start后,OH_AVMuxer_Stop前调用。 调用者需要保证数据写入正确的轨道,并按时间顺序排列。
233
234\@syscap SystemCapability.Multimedia.Media.Muxer
235
236**参数:**
237
238  | 名称 | 描述 |
239| -------- | -------- |
240| muxer | 指向OH_AVMuxer实例的指针。 |
241| trackIndex | 数据对应的媒体轨的索引。 |
242| sample | 写入的数据,编码或解封装得到的数据。 |
243| info | 写入数据的信息,参考[OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.md)。 |
244
245**返回:**
246
247执行成功返回AV_ERR_OK,否则返回具体错误码,参考[OH_AVErrCode](_core.md#oh_averrcode-1)。
248
249**起始版本:**
250
25110
252