|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
gstreamer 开发中,一般开发思路为:寻找命令行实现--命令行验证--将命令行集成到代码中---代码工程化。当然如果你要代码更优雅一点,可以用命令行用对应的 API 来实现。本节来总结一下 gstreamer 的常用使用过程。" y0 R/ z {" X2 H$ M( S1 o
将配套资料通过 U 盘拷贝到开发板的根目录下,如下图所示。配套资料的路径在“iTOP-3399 开发板/02_iTOP-3399 开发板资料汇总(不含光盘容)/12_iTOP-3399 开发板音视频开发资料/测试资料”
+ I' U9 ]( T) f! o( h; c
4 n1 J' E" Z! Z" ]! y1.png
" J7 [( g9 Z+ Y9 o$ Y# v' Y3 p3 _" I; Q; b# J4 M- G
7 m) E8 `: r4 r6 Y7 E; \- r# S+ ^: j) H+ i- \3 O
2 H E# j% R; F
1 gst-inspect-1.0 测试
[9 T: z* D4 d5 Z9 A& C* xgst-inspect 可以查看插件或者元素,输入以下命令查看所有元素' R H6 B0 s/ h- [4 U8 \
gst-inspect-1.0
/ w1 J# [( ^" a& m# J. I% e& ?" M/ i ' A0 L5 _; H7 Q5 a3 Q; S, v& B
2.png! z. z' f7 k( k7 S% I, L
. |) i! {7 |% y( V) s; d' A4 I4 q9 s, _
: Y9 H4 f7 c) m! Y z% \
3 [, ~. i$ f, `+ r/ H& z
7 G3 a6 f/ |% v' }/ i查看并过滤相关元素,输入以下命令,如下图所示:7 b( D( F. T# c* j
gst-inspect-1.0 |grep xxxx
0 U6 ^' ^/ R2 a# E# H7 B3 J# }$ b ( ~+ s$ S4 |6 q0 G
3.png% e _& N; ^; z3 l3 ^" z
' m v$ x, L5 W. G* W% v0 ]6 ^5 B
1 D6 W; h- Z* F; e) v
0 [3 U ?* P$ M% P$ W% K+ Z( J
6 Q2 f2 N4 J. m# B9 U: a查看某一个元素,输入以下命令,如下图所示:9 {9 ~ Z: K5 Y* A: F- c0 \
gst-inspect-1.0 xxx! E7 Z% f1 B7 _' S4 z* a
B8 ?3 B8 x b; H4 ]9 Z4 Q
4.png% {. N( e% ^! L* W0 K
5 u! V _1 X1 [9 I ]. t+ D9 w! p2 R+ N% v) a1 ~1 k7 g
/ C$ z( [6 I% D+ k5 R
; q& N$ b6 ^$ |1 D& J输入以下命令查看黑名单元素,通常某些插件的依赖库不存在,gstreamer 会将它列入黑名单,不可使用,通过该命可以追踪某些异常的插件。
. A; P2 E# @, |, [, l) r6 P+ kgst-inspect-1.0 -b; F! e* L1 T2 {4 T2 C* O$ X
L3 }% {( m" w1 ]0 U3 d3 B9 g5.png
! R& I8 `# u: Y( E/ P! P4 B5 u% T, L' g3 ]
/ C! M* A% Z5 f! }/ ^5 v9 [
1 Z2 g8 }' A% S, M4 C+ |
% a+ Q6 } \1 V$ e6 U Z, U1 ]% J
2 播放器工具 gst-play-1.0) e3 g& @; t1 k
如播放一个视频,输入以下命令:4 _' f7 Y* J1 R0 c9 P/ g9 r
gst-play-1.0 /video/1080p_30fps_h265.mp4
' w" l/ i" \! \& E8 p9 Q
5 s8 ~' ?& j/ F9 i5 @! B7 b& ]' H+ x6.png
; m$ |( W4 W% H! [" M
2 P2 @3 U6 b. W
7 A9 c& t+ p/ Y9 R' c3 |# s
# g! j1 K# J7 X4 `7 i6 H6 F
- c8 \# R4 `# q. s5 z
/ W1 d# p" |$ S6 u# _' e$ t 3 gstreamer 日志级别设置3 s' f- K/ g- W% `
gst 的日志等级分为 none(0)error(1) warning(2) info(3) debug(4) log(5)。默认 gst 的日志等级为 1,即 error打印,出错时会打印。" @+ D2 e6 j* c4 Q3 C% U
1)全局日志级别设置; G2 Q5 |. I2 M" Z/ i+ K
如果需要更高级别打印,修改环境变量 GST_DEBUG 即可。如需要 warning 级别打印,配置 export
& H* d8 ^( u- L8 L5 v GST_DEBUG=2 ,如图所示
+ t: N* I* ^$ H1 [4 g ' h/ x( N, [9 T2 }1 k
7.png% R7 \5 S9 J a5 C6 t# o9 Q
/ C$ Q4 w2 \. V# @
, S# w0 N4 R: y h* t
5 r& [. x' x) C2 |& z8 \, ^2 p
O( l" o3 {; d2 f 2)某个插件日志级别设置
6 K' w. H: c( R6 e8 Z& Iset GST_DEBUG=GST_AUTOPLUG:5,GST_ELEMENT_*:4,d3dvideosink:3
1 U$ U, z' i" H9 m# U2 d/ F即自动插件为 5,所有元素默认为 4,d3dvideosink 元素为 3。
" W* s" T3 |# h3)日志打印函数$ P+ n2 y& X/ m' o
日志打印函数 GST_ERROR(),GST_WARNING(),GST_INFO(),GST_LOG()和 GST_DEBUG()宏。它们就像 printf 一样可以接受一些参数并且它们是使用默认种类的$ p* }, T+ A" }# ~2 d1 v( O9 {" e
4)日志另存为文件,配置环境变量 GST_DEBUG_FILE=文件路径$ |3 Q. a) B% {1 I0 D. s. n; n( ^
如:Set GST_DEBUG_FILE = C:\\test.log。日志就重定向到 C:\\test.log 文件里。( V# W" B, P; T) ]% I( n# v
5) GST_REGISTRY_UPDATE 环境变量用来查找插件是否更新,即是否重新扫描去更新 cache 内容,将这个环境变量的值设置成”no”,这样 gstreamer 框架在初始化的时候就不会检查 plugin 的更新,这样可以加速启动。输入以下命令:" ~! q1 \# x* w. h
Set GST_REGISTRY_UPDATE=”no”$ n3 H7 x, I+ G1 a, O) \2 E
更多内容关注:北京迅为
- l7 m% B& l* x) f" y) A$ X& G1 i0 S D, D& t& l' ^8 D4 a
|
|