|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
gstreamer 开发中,一般开发思路为:寻找命令行实现--命令行验证--将命令行集成到代码中---代码工程化。当然如果你要代码更优雅一点,可以用命令行用对应的 API 来实现。本节来总结一下 gstreamer 的常用使用过程。
`+ Z2 q/ ]2 r$ j/ n 将配套资料通过 U 盘拷贝到开发板的根目录下,如下图所示。配套资料的路径在“iTOP-3399 开发板/02_iTOP-3399 开发板资料汇总(不含光盘容)/12_iTOP-3399 开发板音视频开发资料/测试资料”
; [, `, ?) ~6 y# k% W" w( ^
' W7 k( Q: y; ~! E/ x; P0 G0 U: Y1.png* u- b# _$ ~! ~ v8 n1 {8 R
0 t7 {/ ~7 N) J- ?0 ?
% x- P7 @* y0 B% A0 N+ F% O
0 M; G0 x/ d% k, h ; y/ G* F- e$ R; Y: L0 O
1 gst-inspect-1.0 测试) `& w% B9 `0 P! B# v
gst-inspect 可以查看插件或者元素,输入以下命令查看所有元素
2 n' ~2 ^( ^# w5 ^2 Xgst-inspect-1.00 t9 E" E% _6 [- ?
) r4 a# B0 A" Q9 A" w2.png: ?2 ?: |5 r: I6 e& y9 J
. n: W* m: R; W( [6 v3 }* ]
4 L, v: W- l& G/ m& K; P4 P% |
, w* Q5 J9 q/ m
4 C# u: A2 g6 ?* P4 f6 m查看并过滤相关元素,输入以下命令,如下图所示:
; A0 e9 ]! E7 hgst-inspect-1.0 |grep xxxx4 k, |& V' q! A' X
# C9 Q' W! @: |; u5 g0 {# w8 V! x! j
3.png
; q& K- Y- h( B5 P
4 X$ Q3 k8 B& J: S, x: Q$ Y+ W
: c( I2 ~; z$ I. s# x% K' {$ q0 u* ]/ B0 ]) `$ N$ f3 b1 n* S, |
$ l x% N6 `$ K$ F- d5 u7 c查看某一个元素,输入以下命令,如下图所示:
) r2 g. m+ b3 A' g5 z7 l; Qgst-inspect-1.0 xxx- B- |; V' p: x, y ?
. }9 z' ~: L8 _& h, e
4.png
2 ~7 e; i2 L# [" G6 A: X# J/ O, e9 `9 A2 Q) u* s
4 {1 |' d0 s- ]8 d ^% `$ p* ^( q
( A# |- A4 X' l+ U, s3 Q7 }, o
+ n' F5 }/ C3 {/ X* q3 W& _
输入以下命令查看黑名单元素,通常某些插件的依赖库不存在,gstreamer 会将它列入黑名单,不可使用,通过该命可以追踪某些异常的插件。
2 \+ `+ r* e' [3 Bgst-inspect-1.0 -b& D! h) J- ~7 x' ~
1 Q+ ^* y$ i) t8 g" e* N' a
5.png& c. t5 J6 o! A. ?( A1 L
. l( ~1 s1 m; i- ~- {
) g6 y- m+ }( @3 H6 W
P8 C# E% ~* `
0 ^% {6 ~- [+ e" m/ y 2 播放器工具 gst-play-1.0
& ]* [8 T3 K; N) n; w# A如播放一个视频,输入以下命令:
( O* }& I( o2 [# Q) L9 `+ tgst-play-1.0 /video/1080p_30fps_h265.mp4( F- I3 W0 @9 w0 O1 I" ~* G# z
& F- g( w1 G! k" s5 {/ n+ [0 n) t6.png
6 ` F; k0 f0 U2 ^6 h: o$ q' Y; r# ~! j+ i# M1 w
* X% m( l+ [9 h$ g9 e4 o) N
) [" N+ G j+ ~! i7 v
, A" `& n" B; ?8 [; D8 M; t. K3 l( y- |: V4 Y4 H
3 gstreamer 日志级别设置1 ^: f% A' D8 [( S* ?, d B8 Z
gst 的日志等级分为 none(0)error(1) warning(2) info(3) debug(4) log(5)。默认 gst 的日志等级为 1,即 error打印,出错时会打印。* B- O$ a/ z7 d3 y) b& A
1)全局日志级别设置& _) W7 n' \% k+ {- e `
如果需要更高级别打印,修改环境变量 GST_DEBUG 即可。如需要 warning 级别打印,配置 export0 P) U f3 w" z% s B5 A" E- H. `
GST_DEBUG=2 ,如图所示. @5 p7 c, w3 ?! V( Y6 e- |
& ]! S3 {6 S1 t7 W: D- x7.png% U5 N# ?0 K. p9 B/ C& I N0 O+ v) @
+ @7 x" ]/ u! e! _ R
: ^1 M5 j: J9 ~3 V$ v
" e4 w. H. r; x
' F! K5 F2 n$ b( b6 I* t \/ ~ 2)某个插件日志级别设置
' S) @7 ^! T+ A. I$ c) Nset GST_DEBUG=GST_AUTOPLUG:5,GST_ELEMENT_*:4,d3dvideosink:39 T0 Z; B H" `! @% h
即自动插件为 5,所有元素默认为 4,d3dvideosink 元素为 3。
- N% E6 {4 o$ O6 K3 Z, C+ n/ o3)日志打印函数" o9 @, B, _! {1 U6 ?/ d
日志打印函数 GST_ERROR(),GST_WARNING(),GST_INFO(),GST_LOG()和 GST_DEBUG()宏。它们就像 printf 一样可以接受一些参数并且它们是使用默认种类的
1 s; H5 \# ?( @# S& i4)日志另存为文件,配置环境变量 GST_DEBUG_FILE=文件路径9 ^% j3 e8 [3 n, ~
如:Set GST_DEBUG_FILE = C:\\test.log。日志就重定向到 C:\\test.log 文件里。
# e: Q6 |" T! G5) GST_REGISTRY_UPDATE 环境变量用来查找插件是否更新,即是否重新扫描去更新 cache 内容,将这个环境变量的值设置成”no”,这样 gstreamer 框架在初始化的时候就不会检查 plugin 的更新,这样可以加速启动。输入以下命令:" \. g/ @& p3 h B3 ]
Set GST_REGISTRY_UPDATE=”no”% q+ c9 R' x6 k/ v- c# R9 x. z; `
更多内容关注:北京迅为
2 l" Z$ c2 T; n2 q( U7 {. N
) F" t! z1 \3 U6 A) q7 b |
|