|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
gstreamer 开发中,一般开发思路为:寻找命令行实现--命令行验证--将命令行集成到代码中---代码工程化。当然如果你要代码更优雅一点,可以用命令行用对应的 API 来实现。本节来总结一下 gstreamer 的常用使用过程。: L" U2 R$ w2 P# C. U/ {
将配套资料通过 U 盘拷贝到开发板的根目录下,如下图所示。配套资料的路径在“iTOP-3399 开发板/02_iTOP-3399 开发板资料汇总(不含光盘容)/12_iTOP-3399 开发板音视频开发资料/测试资料”# r; S5 ~8 {4 Q: c2 ?) n$ s5 x. B
4 U) C+ v- L8 F6 O; d
1.png
! ~4 ~. v4 i* K& q- n% k# o; Z4 A* A" O+ ^# o+ @; |8 T+ t8 J {/ `
' \! }+ [- D0 k. y
! H. a/ s/ j, p/ A2 o1 O$ k/ q
: C/ k' N' K7 v, c# r$ l' } 1 gst-inspect-1.0 测试% Y# c; v( v% C/ K/ P" w! I; o5 H" L
gst-inspect 可以查看插件或者元素,输入以下命令查看所有元素
( g- P3 o4 T$ b. R0 p1 Kgst-inspect-1.0- m! \0 p* F' q3 n/ v
& Y1 B1 i1 W$ Z0 B9 T& ]8 v" o2.png
: x" A: M* K4 K# f2 A6 N6 g
4 N! t7 L+ f Z" _( }& @) z7 Y+ E0 q, ]6 R! O+ M
1 A2 ^1 y* b1 x2 v
: r; S! o- w" E6 C
查看并过滤相关元素,输入以下命令,如下图所示:- M5 r; [$ \8 H! n
gst-inspect-1.0 |grep xxxx
0 \( ]& s; B4 @; O8 u 4 Z) i/ W) I! \
3.png
. K3 V+ x/ ^, Y/ s5 g1 [
$ l2 s2 ?" X% u1 {5 y$ R9 l
1 ^/ `* b4 Z4 j A) h! g, @( b2 x/ T2 ], W- K5 Y3 ~8 Y
% U' f+ u( K6 C/ T$ [: g
查看某一个元素,输入以下命令,如下图所示:
L- n2 ~7 d: I1 w/ W; qgst-inspect-1.0 xxx* P% N* V0 X& ~
7 J) y9 g+ r0 z. W9 x
4.png
: m+ N% o) ^% ?, H
e5 c ?# j( D2 h- t) K4 n4 _- a! }0 |) J7 f& u7 {9 }6 E# K
9 j' n* i5 u2 u2 B
0 M E# g) l. t& r A9 d& L输入以下命令查看黑名单元素,通常某些插件的依赖库不存在,gstreamer 会将它列入黑名单,不可使用,通过该命可以追踪某些异常的插件。' f/ }/ Y1 R6 d
gst-inspect-1.0 -b7 h, A4 T% ~/ L" Q
2 s( E6 D9 Z+ Y5.png, G* {1 o* j0 D! ?# q8 }
. S6 J6 O( |. {' _2 w; n; o: G/ a/ c/ H9 U5 V4 N* f3 h
, t7 X: v7 T' N9 l: X' o
" ]( \ }" `7 J6 E5 z S- \
2 播放器工具 gst-play-1.00 o6 |+ m6 B: x5 G
如播放一个视频,输入以下命令:6 B, L# ]# E# X X0 f4 r
gst-play-1.0 /video/1080p_30fps_h265.mp4
q* \% ~: X6 @- t- l8 _ % z" Q5 f- i) k3 @7 I; p. l% R
6.png4 @ e! X) Z) D
2 \5 R7 Y( |% e& _0 G# t( m
1 A" V( z2 K# a, v# ^3 `/ d4 b, x# ~ w0 J; L4 T
" H0 [+ o8 }& q* \5 u- o0 ` b) ?* X8 [4 L
3 gstreamer 日志级别设置
$ ?' c5 K% J& J7 a5 M' pgst 的日志等级分为 none(0)error(1) warning(2) info(3) debug(4) log(5)。默认 gst 的日志等级为 1,即 error打印,出错时会打印。
$ e3 t4 q) h3 P# R( G! d' F# }/ E8 L1)全局日志级别设置 I7 W4 u( C5 P4 X8 J( Q
如果需要更高级别打印,修改环境变量 GST_DEBUG 即可。如需要 warning 级别打印,配置 export3 G+ x: V4 q( j1 s, E% M! C
GST_DEBUG=2 ,如图所示
8 b" ]/ S/ c" J O% a ; O0 Y9 e& e. ?% ^0 j( b( S: R
7.png
8 H" f9 m! g( g( E* z2 T! J! G; e# n: c8 g
! a4 v# ~( D, Z
% h3 \0 p6 z: `' N1 w. l( v( ]0 G
8 l1 _1 n7 N0 I8 ^- g
2)某个插件日志级别设置 W9 b5 Z+ |# d! }8 m7 D1 u0 L9 P+ n
set GST_DEBUG=GST_AUTOPLUG:5,GST_ELEMENT_*:4,d3dvideosink:3
. V, O: _; ? a2 o- H即自动插件为 5,所有元素默认为 4,d3dvideosink 元素为 3。* r5 @" D$ S4 Q! q# L
3)日志打印函数# @% k; z" C! |, \
日志打印函数 GST_ERROR(),GST_WARNING(),GST_INFO(),GST_LOG()和 GST_DEBUG()宏。它们就像 printf 一样可以接受一些参数并且它们是使用默认种类的
: v8 ?8 M) L% F$ n$ |4)日志另存为文件,配置环境变量 GST_DEBUG_FILE=文件路径8 V8 {) o8 \* z" B) Z' ]
如:Set GST_DEBUG_FILE = C:\\test.log。日志就重定向到 C:\\test.log 文件里。
( ]* R0 g( I0 f$ ?2 t2 ~5) GST_REGISTRY_UPDATE 环境变量用来查找插件是否更新,即是否重新扫描去更新 cache 内容,将这个环境变量的值设置成”no”,这样 gstreamer 框架在初始化的时候就不会检查 plugin 的更新,这样可以加速启动。输入以下命令:
& B4 O5 Y+ B8 ~3 W' QSet GST_REGISTRY_UPDATE=”no”
7 f, J% J% `# H% m7 j更多内容关注:北京迅为5 Y& L* I; w+ j9 t& L# H% B
- q) N% O7 s* q# {
|
|