|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
gstreamer 开发中,一般开发思路为:寻找命令行实现--命令行验证--将命令行集成到代码中---代码工程化。当然如果你要代码更优雅一点,可以用命令行用对应的 API 来实现。本节来总结一下 gstreamer 的常用使用过程。
- \3 L7 Y+ H7 _! O 将配套资料通过 U 盘拷贝到开发板的根目录下,如下图所示。配套资料的路径在“iTOP-3399 开发板/02_iTOP-3399 开发板资料汇总(不含光盘容)/12_iTOP-3399 开发板音视频开发资料/测试资料”
, h, ?5 w6 S% x, H- j. J * Q3 r9 f7 N( p9 Z5 Q
1.png
# Q6 \: p% o7 I, H" M4 t( H+ p9 ]/ W4 c$ @! k J5 v
& `; W( ]4 E( m; K4 \( }8 B3 M
6 J( j3 k5 R e5 d v* v
3 e$ f9 ?: B) U, T: s2 F3 T8 f: w
1 gst-inspect-1.0 测试& H/ e0 x3 w& `+ p d9 e+ h5 Z
gst-inspect 可以查看插件或者元素,输入以下命令查看所有元素
6 s; O' ?8 I' Q: Wgst-inspect-1.0# m" g/ E$ d* m8 k# o% c) e$ q' J
! L- j# b+ Q: [; }' q6 p3 J
2.png! w; @: U- m9 X7 A
# r1 P! ^) F8 C& b# A6 g# Y
) V; m9 k7 Y7 F, D( u
# u% `( |; x( C2 L7 N# C' Q6 g
+ b8 _3 n% i& k- [7 s4 Q8 m+ x1 m" j查看并过滤相关元素,输入以下命令,如下图所示:! q# M1 e9 _! ?, O( N! ?6 s
gst-inspect-1.0 |grep xxxx
( ]+ W7 G3 W3 A3 [6 K# g 5 V# x. V( y) @. H
3.png
" d6 E# [& k0 ~' \5 d9 x. C
# [: P5 g! W- u/ C. \, }, p! ^% V& I9 O% Y; ]" U7 ?( n, }
2 f a5 }. p" y, @
; O7 d; X7 w( K查看某一个元素,输入以下命令,如下图所示:* L5 g& M' |/ [$ x
gst-inspect-1.0 xxx
: E4 B# i" p8 Z- P) w% h
4 _! p, ?5 |! j7 x. ~2 i2 o3 v4.png% I- r7 s4 Z! d. S# k% ~* j; t
! I4 `$ ?( ]. k. B5 Y
" q1 W1 V& h* @4 z. `8 F- C! `
3 s' T9 d. |+ t% l( x5 t 5 H2 H+ {5 c+ h* Q0 b
输入以下命令查看黑名单元素,通常某些插件的依赖库不存在,gstreamer 会将它列入黑名单,不可使用,通过该命可以追踪某些异常的插件。' C4 D/ S4 S) ^ Z
gst-inspect-1.0 -b
7 }5 h" |" N, c2 w H1 Z6 o
- c& h: J6 E# v0 d A/ o5.png; H# p. ^) b2 i8 U
2 {+ a9 E8 S) q
0 S! {3 q; J' K
; ^% L9 {0 N8 K) E
/ B: u& [9 B7 M, V2 Q/ O! S 2 播放器工具 gst-play-1.0
4 R4 h+ z0 K+ B3 T如播放一个视频,输入以下命令:
. @3 U8 K* n4 _6 Zgst-play-1.0 /video/1080p_30fps_h265.mp4
) x6 y8 f* [3 p0 s; i8 `* Q( y & z1 {$ B5 ]6 g+ T+ ]# y3 Y
6.png. M2 D' q( }6 @- F9 u+ y" ?$ k
5 w5 `" T9 G. c$ f
7 }0 a9 K8 J% M: w
7 j$ ^7 m0 L9 i" c! P: F5 F
3 v& V/ _9 j- v; z" _; y
2 d, b; N9 r: \6 b
3 gstreamer 日志级别设置0 {1 K# U3 X; \+ ]2 T( W9 {5 B
gst 的日志等级分为 none(0)error(1) warning(2) info(3) debug(4) log(5)。默认 gst 的日志等级为 1,即 error打印,出错时会打印。
# r4 @, H- P6 }# r/ \# h U1)全局日志级别设置3 S+ j, h; y! |, |0 X. `
如果需要更高级别打印,修改环境变量 GST_DEBUG 即可。如需要 warning 级别打印,配置 export# m( U }2 r$ W* g
GST_DEBUG=2 ,如图所示% n+ P6 I! M& ]8 Q
; P. j0 F" t: G7 R* f7.png" f& j" |" ]* q, u: a" `8 q
5 ?1 r$ L3 D3 I6 D1 k3 A
1 l7 f( w7 v+ U, V, ~: w! z% ?$ Z4 ~( N! L! z! u9 {4 t0 V# W
/ ~+ e4 D5 v! ?& E6 t9 I" n8 ` 2)某个插件日志级别设置
5 R0 }+ E: x0 C4 sset GST_DEBUG=GST_AUTOPLUG:5,GST_ELEMENT_*:4,d3dvideosink:39 N- s# ^9 H7 X
即自动插件为 5,所有元素默认为 4,d3dvideosink 元素为 3。
2 i ~) T/ l4 y0 c. ], c3)日志打印函数$ r8 h% _6 {8 ^2 I r, `' A
日志打印函数 GST_ERROR(),GST_WARNING(),GST_INFO(),GST_LOG()和 GST_DEBUG()宏。它们就像 printf 一样可以接受一些参数并且它们是使用默认种类的
9 S% C ^& N6 a$ N; T) }4 Z4)日志另存为文件,配置环境变量 GST_DEBUG_FILE=文件路径
: {- o& e- U% k) O; M4 s 如:Set GST_DEBUG_FILE = C:\\test.log。日志就重定向到 C:\\test.log 文件里。
# u [9 L A4 w0 c& e2 ~4 D5) GST_REGISTRY_UPDATE 环境变量用来查找插件是否更新,即是否重新扫描去更新 cache 内容,将这个环境变量的值设置成”no”,这样 gstreamer 框架在初始化的时候就不会检查 plugin 的更新,这样可以加速启动。输入以下命令:0 k" Q! N1 D! f! W. b+ }3 J! F
Set GST_REGISTRY_UPDATE=”no”
) a5 M1 J3 `, X* n c& _$ [9 c更多内容关注:北京迅为4 q1 x1 P! z. `' c+ x- |/ [
8 m# W. N9 A8 _7 V
|
|