|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
gstreamer 开发中,一般开发思路为:寻找命令行实现--命令行验证--将命令行集成到代码中---代码工程化。当然如果你要代码更优雅一点,可以用命令行用对应的 API 来实现。本节来总结一下 gstreamer 的常用使用过程。
- ]4 Q, W$ n$ G: f3 O { 将配套资料通过 U 盘拷贝到开发板的根目录下,如下图所示。配套资料的路径在“iTOP-3399 开发板/02_iTOP-3399 开发板资料汇总(不含光盘容)/12_iTOP-3399 开发板音视频开发资料/测试资料”
; U! K# z7 L" O0 K ) G' |9 u* Q: @' r1 k+ W
1.png2 M6 o: N% M" Y6 Q
1 n: _8 }1 c8 J/ B# h
# |1 b7 L5 N$ h" V3 v# ^
( O, O* I( _6 O4 e# I* K q 2 L, Y& P* [7 ^2 t, O4 x4 w
1 gst-inspect-1.0 测试
7 R0 L/ ^9 Z& Ngst-inspect 可以查看插件或者元素,输入以下命令查看所有元素* l( `0 \0 y" Q6 h" @( \/ M; a
gst-inspect-1.0
; S9 R& E) B+ X7 ]' u; S2 ~* A
" M) X# Y/ v, l( {& I2.png4 j- |: V! G& M5 W" N
. n$ t3 d6 l" M! S! D5 e
3 A# j5 b4 M5 U. i8 b
: d, G2 |# |' {9 H5 u9 p m 0 m& @ n3 f. c5 I
查看并过滤相关元素,输入以下命令,如下图所示:# l! C- J: V1 h8 T/ `! p# ^$ \
gst-inspect-1.0 |grep xxxx4 d. q" Y5 }9 j1 e9 M( m
% Q* X7 M% u P; ^7 u+ Q$ I8 j8 v" O
3.png
( c3 ]. c& L, {) ?8 z; @1 n, Q3 O* c3 ]
5 @/ |& r# g( J# S( v
9 m5 r. j8 c8 ^, N
V( T8 ~$ ^$ ~: H, h查看某一个元素,输入以下命令,如下图所示:: y# U* e j- w# d. E8 B7 O
gst-inspect-1.0 xxx, ^$ q# e+ M, c+ ^
% W, c4 m* {- f! d9 s6 k4 i4.png
9 P- r' i3 O/ E" u1 o+ A0 ^
; j) Q, B( }! e* ?7 o
$ C5 Z; w0 _) ?# I# W) J
: ~; L" G4 x$ j$ }- e # c& V( b( [2 N; t+ `1 x- w
输入以下命令查看黑名单元素,通常某些插件的依赖库不存在,gstreamer 会将它列入黑名单,不可使用,通过该命可以追踪某些异常的插件。1 O8 x( ^/ H0 q# Z
gst-inspect-1.0 -b
' g9 ]' k& X5 _8 W8 f3 P9 }, I4 \, c # j0 |, o# c0 v P/ G5 g G5 e; o& @
5.png+ {) V& e2 I1 }$ l, ?- e0 C4 G
" i9 q' i% y& e0 h
7 ]4 j+ A' U( L" k
0 W) y, H% G3 k( F
) J$ T A! L: c `! O 2 播放器工具 gst-play-1.0$ J) j: Y: ^1 L1 K5 t
如播放一个视频,输入以下命令:
% k2 l% u0 M. b8 E% s5 a1 jgst-play-1.0 /video/1080p_30fps_h265.mp4
/ ~6 l& y! R7 @7 r1 H
% F% k& g0 f* e) i. C0 ]1 {; R6.png
; P3 M8 l& S. z z4 _/ d9 E% ~
; r2 j0 }' W( _& N' B7 q" _! i+ |0 f0 ~5 o5 j* g
3 O4 [0 P) x2 z
4 N; F& V+ t# E' G8 s
/ b# r! y* X6 D0 R4 w 3 gstreamer 日志级别设置
F; x7 _- x( x! t+ I7 ?# w$ Xgst 的日志等级分为 none(0)error(1) warning(2) info(3) debug(4) log(5)。默认 gst 的日志等级为 1,即 error打印,出错时会打印。
" d$ A' V! r, @1)全局日志级别设置
# n0 j& T2 T/ u9 |1 {# K% O 如果需要更高级别打印,修改环境变量 GST_DEBUG 即可。如需要 warning 级别打印,配置 export: s8 E, i& I0 |( q
GST_DEBUG=2 ,如图所示
( i8 b2 j2 ^, @) Q( L
1 ^' j' ^0 Z0 S& z" B7.png
N- p' a0 z1 a6 n Y( D$ M
9 h1 y J* n W6 a) j! ?
+ H- a6 p2 z( n8 E% s
$ K0 d9 }! O! d
/ t3 Q# Q% |5 `/ g1 z 2)某个插件日志级别设置8 |) _2 m" S& Z7 r7 G1 ?8 ]
set GST_DEBUG=GST_AUTOPLUG:5,GST_ELEMENT_*:4,d3dvideosink:37 I, Q @# C5 @5 Y/ Q6 ]1 r) M4 Z
即自动插件为 5,所有元素默认为 4,d3dvideosink 元素为 3。
! E }# t2 a9 D6 P9 q! l: ~3)日志打印函数
3 f7 j) S% Q, w; Y. M. W6 k! P/ M 日志打印函数 GST_ERROR(),GST_WARNING(),GST_INFO(),GST_LOG()和 GST_DEBUG()宏。它们就像 printf 一样可以接受一些参数并且它们是使用默认种类的
7 a, q, m& E; [* h7 r4)日志另存为文件,配置环境变量 GST_DEBUG_FILE=文件路径
5 u/ @8 u: V3 p; S 如:Set GST_DEBUG_FILE = C:\\test.log。日志就重定向到 C:\\test.log 文件里。) G0 b! p/ _: Y8 Q9 K0 @ M9 e
5) GST_REGISTRY_UPDATE 环境变量用来查找插件是否更新,即是否重新扫描去更新 cache 内容,将这个环境变量的值设置成”no”,这样 gstreamer 框架在初始化的时候就不会检查 plugin 的更新,这样可以加速启动。输入以下命令:; C) y( [5 a$ m8 ~# F. V: f" ^$ O
Set GST_REGISTRY_UPDATE=”no”. t; W0 J/ C! |4 Q( u3 V& }4 n) j9 t
更多内容关注:北京迅为
) j2 Z7 X; o7 \1 g2 M% g
/ Y/ i o7 F' _, a! e3 y. l |
|