|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
gstreamer 开发中,一般开发思路为:寻找命令行实现--命令行验证--将命令行集成到代码中---代码工程化。当然如果你要代码更优雅一点,可以用命令行用对应的 API 来实现。本节来总结一下 gstreamer 的常用使用过程。# \8 H' d# b" P
将配套资料通过 U 盘拷贝到开发板的根目录下,如下图所示。配套资料的路径在“iTOP-3399 开发板/02_iTOP-3399 开发板资料汇总(不含光盘容)/12_iTOP-3399 开发板音视频开发资料/测试资料”9 P6 h) t3 Z) m+ O/ t
0 S* s3 F( ?8 t
1.png
! x; r& F: r1 B& `* ^) n: n3 `- B. j* C: ]' x1 u* g
$ J7 y( [" | v3 s
% E% [! T1 L9 i' z/ h' o % a4 N9 G: P8 z$ {3 m3 M5 a2 f# u
1 gst-inspect-1.0 测试. j: S. S4 _+ a- `) ~) a
gst-inspect 可以查看插件或者元素,输入以下命令查看所有元素
$ E7 ~) w. S. w2 I# S$ m& fgst-inspect-1.0
+ m, o8 g5 ^/ m+ _& ?+ z
2 V% {( Y/ b6 A2.png+ j K6 [3 a% Y
. J; u4 a* c; g& Z, u3 j5 l4 L/ ?5 M2 f+ |
4 T5 l6 e: x$ S, G$ P4 z5 b
, e. O3 G0 a2 L7 I; \. y2 p查看并过滤相关元素,输入以下命令,如下图所示:
4 I, A+ n: O' C( v k6 Kgst-inspect-1.0 |grep xxxx
: ^% @+ o7 E0 Z- R' I) f , `4 Q( T" X3 e% O2 X
3.png1 X. y( N: Y- ^! q) y
6 V+ W9 r) c9 H2 B/ q
( I. n |+ I' ^6 }9 M$ x
" Z1 e0 ^8 ^, F# f6 B
, m" o x- T/ c1 ]" W9 Q+ ~查看某一个元素,输入以下命令,如下图所示:
1 a3 q8 j4 a$ d% e8 y: Q ?+ B. Lgst-inspect-1.0 xxx, e* `$ U F: Y! A6 Y: j i ?# [
; i2 T- X y) E# e$ L
4.png
$ B" w. J$ t# D+ T" L3 G1 J& h" Z* M; V8 s/ n" K- s$ f) `" R
/ r: @/ O; @% L
n0 ?$ D9 `- S% \; \5 S
+ d; o! u2 C3 i0 e输入以下命令查看黑名单元素,通常某些插件的依赖库不存在,gstreamer 会将它列入黑名单,不可使用,通过该命可以追踪某些异常的插件。
* W6 J- Q" a9 J7 O0 m8 }' K1 lgst-inspect-1.0 -b; g+ A; C, A& ^8 f8 L/ u# B7 B
, k' @' h$ j$ {4 S$ C( j" E
5.png. ? Y2 Z$ a. Y) l1 B0 {0 M8 O2 P
. l0 W' J. M" Y* ]$ ]
! ?7 F$ b' V3 C& j1 ]$ b. e9 ^2 B4 I- T
, \$ N9 ?; ]" Y8 A
2 播放器工具 gst-play-1.0
l* O8 X& x8 j/ n4 z; z* P7 o如播放一个视频,输入以下命令:% j, x& \3 f- C, y) A
gst-play-1.0 /video/1080p_30fps_h265.mp4
& f; e: |$ S7 r* p( t4 S , I6 B) Q: C% d& A; P
6.png
% e* U1 O; G$ S) X6 Q
+ Z ]9 z6 A, K- @7 k% B0 O+ R
: v3 ~ n: ]( k0 H
. W7 Z i7 f* \" v3 L: ]3 \( a" l & X* T& V( g4 |2 t+ ~- b
0 }) Z. p O4 G# U; z2 a 3 gstreamer 日志级别设置5 }1 p) e6 \0 e' G4 S1 N
gst 的日志等级分为 none(0)error(1) warning(2) info(3) debug(4) log(5)。默认 gst 的日志等级为 1,即 error打印,出错时会打印。
+ }. ?, }7 u, q% g1)全局日志级别设置
7 ^8 w- x, j5 N8 r 如果需要更高级别打印,修改环境变量 GST_DEBUG 即可。如需要 warning 级别打印,配置 export
* m, Y0 F( \0 I5 f- w GST_DEBUG=2 ,如图所示/ w& Y0 P) c: E; `
% A2 X% v4 @! e0 s1 V" U0 n
7.png* b( O6 r7 o+ P; G
; V$ z& q1 l4 `
4 i- k9 o/ i. M! D" ]/ k
% j* Q1 a' V( y/ w
" y1 s$ W2 v6 T9 f0 i! E% K& e
2)某个插件日志级别设置" g7 B& _' F0 Z- g. l( l) m8 j! G
set GST_DEBUG=GST_AUTOPLUG:5,GST_ELEMENT_*:4,d3dvideosink:3
8 C7 L. j+ t2 ` F即自动插件为 5,所有元素默认为 4,d3dvideosink 元素为 3。
/ q/ [# ]: ?: V! ~1 S3)日志打印函数
/ g2 m8 s9 e: y. } Z3 C: }2 R 日志打印函数 GST_ERROR(),GST_WARNING(),GST_INFO(),GST_LOG()和 GST_DEBUG()宏。它们就像 printf 一样可以接受一些参数并且它们是使用默认种类的
; k3 ^! v; ?# w) K0 {1 E$ [; z4)日志另存为文件,配置环境变量 GST_DEBUG_FILE=文件路径8 y9 n* E6 Q/ F# `
如:Set GST_DEBUG_FILE = C:\\test.log。日志就重定向到 C:\\test.log 文件里。
1 w( Z, `! C& m/ T: K5) GST_REGISTRY_UPDATE 环境变量用来查找插件是否更新,即是否重新扫描去更新 cache 内容,将这个环境变量的值设置成”no”,这样 gstreamer 框架在初始化的时候就不会检查 plugin 的更新,这样可以加速启动。输入以下命令:- w5 P0 V: V& B
Set GST_REGISTRY_UPDATE=”no”
- Q% ~% @8 J6 E( b更多内容关注:北京迅为
6 Z9 T! s5 E. i% P
/ F& P+ @) M: P" B |
|