|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
gstreamer 开发中,一般开发思路为:寻找命令行实现--命令行验证--将命令行集成到代码中---代码工程化。当然如果你要代码更优雅一点,可以用命令行用对应的 API 来实现。本节来总结一下 gstreamer 的常用使用过程。3 I/ q3 o4 Q5 {6 F5 J
将配套资料通过 U 盘拷贝到开发板的根目录下,如下图所示。配套资料的路径在“iTOP-3399 开发板/02_iTOP-3399 开发板资料汇总(不含光盘容)/12_iTOP-3399 开发板音视频开发资料/测试资料”$ A9 O" z# h% V- Q; \9 D$ e6 [
7 M* |2 ^% J6 ? v" |9 D1.png3 r z+ K1 \( S- V( h% U
% U" l# U, ^- j* Q) m6 u2 h; ~$ [' H
: I8 W* H1 f" I d0 p
; k9 f4 S6 a# x/ E2 I- [ l% G : T0 W6 k9 J! p7 _1 a8 f
1 gst-inspect-1.0 测试2 e* A5 F4 Z; l( E
gst-inspect 可以查看插件或者元素,输入以下命令查看所有元素* ^- w9 A0 Z' M1 y) S6 D& m) C
gst-inspect-1.0
5 p. Z& O. N# V/ A7 F
( e- {( G) j4 U! \, [2.png
; Q" u/ \9 o# T/ H& m8 Z9 E6 u3 M& y8 ?/ [! o \3 f
: e, q9 x" X. U: v/ s" H
" ^$ B1 F- p- l9 |* k+ O/ V7 j- I " a- y3 U, v0 b# ~9 O
查看并过滤相关元素,输入以下命令,如下图所示:
: A! m. j7 D' P3 l5 {4 {gst-inspect-1.0 |grep xxxx( g" |0 j( {1 `" Z$ }5 G: U
& h1 D9 e& Q" X: [" m" p8 K5 b3.png
; ~' g0 `8 u2 F( Z& J0 X. s* B* e* ^0 M' Y+ l7 z; l% Z
* i6 W+ u5 k0 o: e5 K: M3 y' y
3 s9 N( {( |9 C2 U# F6 j
" E8 H4 G0 t, T, T3 V, \/ T查看某一个元素,输入以下命令,如下图所示:7 E& k7 K3 l2 G- \* l% n
gst-inspect-1.0 xxx
- Z# k* a, _6 n" R- ^
- f: T* o8 h! y6 _2 P/ z/ d4.png" Y6 G F* \. f$ w2 B
" Q9 c+ l% v( p0 a
+ @) y) Q2 g! _! ~4 C
8 Z( j0 @, i; U. ~ X
/ \( x5 O. Z2 q" w. t输入以下命令查看黑名单元素,通常某些插件的依赖库不存在,gstreamer 会将它列入黑名单,不可使用,通过该命可以追踪某些异常的插件。
( j3 R6 T. F' `* W; L* s1 J7 zgst-inspect-1.0 -b
0 c2 X1 z0 _6 ^5 @- \, F
2 ?5 @3 w0 z' U3 r. L5.png/ z- I6 I7 t: s7 _
. \, n* z$ E# Z2 Z
8 C. e6 n1 A8 H6 l
3 Y5 U; C/ l2 R4 u
- v$ x6 D+ P4 T7 M* K 2 播放器工具 gst-play-1.0" l& U& S! h. l; g" ^
如播放一个视频,输入以下命令:9 V$ e4 d+ I+ ?
gst-play-1.0 /video/1080p_30fps_h265.mp4
/ `" |# J/ `0 E& ?; {: i! ~% G 8 x1 m. G& ~& V: e
6.png# D% g) _% h. ?# l2 {0 c! W
- X/ v0 o; C! i3 P U
% l1 x; w% f) W6 X
* t- N9 Z' Z7 I7 i$ M- a
& a, c% b7 ~: l* w, G* R
4 g ^; A" S: n2 n% d7 T 3 gstreamer 日志级别设置& d. V7 y2 m5 C, D/ O
gst 的日志等级分为 none(0)error(1) warning(2) info(3) debug(4) log(5)。默认 gst 的日志等级为 1,即 error打印,出错时会打印。
2 s$ H1 a& S3 }/ i9 d' D1)全局日志级别设置8 R, ]0 V( _+ f# z3 R
如果需要更高级别打印,修改环境变量 GST_DEBUG 即可。如需要 warning 级别打印,配置 export
1 O' y, a s, h# i8 F: R GST_DEBUG=2 ,如图所示
# e# J! V2 p* Q) K. l9 Z
7 U2 b, ]# T8 t& @' Y! y! g7.png
D8 ]' n" C' F! G8 T
& S; G5 J3 u( a4 I: F8 c6 H9 b* @% V
: G" J" j# u4 T: l9 O : x; Y( h+ n) ]2 C0 Q) ]
2)某个插件日志级别设置1 v# W, N, u* H9 V; l
set GST_DEBUG=GST_AUTOPLUG:5,GST_ELEMENT_*:4,d3dvideosink:3
2 a% S& r2 B& n. F1 K1 w即自动插件为 5,所有元素默认为 4,d3dvideosink 元素为 3。
, f: g4 D* c$ F5 F+ O" {6 U% b3)日志打印函数! ?, _2 m9 z1 ?7 W1 G
日志打印函数 GST_ERROR(),GST_WARNING(),GST_INFO(),GST_LOG()和 GST_DEBUG()宏。它们就像 printf 一样可以接受一些参数并且它们是使用默认种类的9 Y, J. s) A2 S. q
4)日志另存为文件,配置环境变量 GST_DEBUG_FILE=文件路径
; P/ l" d- `+ s, S" g- ^9 G4 L 如:Set GST_DEBUG_FILE = C:\\test.log。日志就重定向到 C:\\test.log 文件里。+ l$ @' s0 f" Z7 C4 y
5) GST_REGISTRY_UPDATE 环境变量用来查找插件是否更新,即是否重新扫描去更新 cache 内容,将这个环境变量的值设置成”no”,这样 gstreamer 框架在初始化的时候就不会检查 plugin 的更新,这样可以加速启动。输入以下命令: _' v. d5 `) K9 V# v5 k
Set GST_REGISTRY_UPDATE=”no”1 M/ n9 p m" i, @. m8 R- d ~4 f
更多内容关注:北京迅为1 U0 L y; l. t5 a5 a
x8 w$ a8 a5 W3 G( H7 y, }
|
|