是否有命令行命令可以在一行中为 gstreamer 管道测试 appsrc 和 appsink?
Posted
技术标签:
【中文标题】是否有命令行命令可以在一行中为 gstreamer 管道测试 appsrc 和 appsink?【英文标题】:Is there command line command to test appsrc and appsink in a single line for gstreamer pipeline? 【发布时间】:2021-07-14 07:21:19 【问题描述】:我要编码的内容
-
从 h264 编码的 mp4 文件中获取缓冲区
将缓冲区传递给应用程序接收器
然后分别在另一个管道中,appsrc 将读取缓冲区
缓冲区将是 h264parse,然后使用 GstRTSPServer 通过 rtp 发送出去
希望为 CLI 管道模拟此情况,以确保视频上限正常工作:
我的尝试如下: gst-launch-1.0 文件rc location=video.mp4 !应用程序名称 = mysink !应用程序名称 = mysrc !视频/x-h264 宽度=720 高度=480 帧率=30/1 ! h264parse 配置间隔=1 ! rtph264pay 名称=pay0 pt=96 ! udpsink 主机=192.168.x.x 端口=1234
但这并没有真正起作用,我不太确定这就是 appsrc 和 appsink 的使用方式
谁能给我解惑
编辑: 我要播放的文件具有以下属性
一般 全名:video3.mp4 格式:AVC 格式/信息:高级视频编解码器 文件大小:45.4 MiB
Video
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Baseline@L2.2
Format settings, CABAC : No
Format settings, ReFrames : 1 frame
Format settings, GOP : M=1, N=30
Width : 720 pixels
Height : 480 pixels
Display aspect ratio : 3:2
Frame rate : 30.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
谢谢
【问题讨论】:
【参考方案1】:您将无法使用 appsink
和 appsrc
执行此操作,因为它们明确意味着应用程序使用它们来处理输入/输出缓冲区。
话虽如此,如果您真正想要测试两侧的盖子,只需将它们连接在一起即可。他们都宣传“任何”上限,这意味着他们不会真正影响上限谈判。
gst-launch-1.0 filesrc location=video.mp4 ! \
"video/x-h264, width=720, height=480, framerate=30/1" ! \
h264parse config-interval=1 ! \
rtph264pay name=pay0 pt=96 ! \
udpsink host=192.168.x.x port=1234
你也会得到一个错误,因为 MP4 与 H264 不同:前者是一种容器格式,而后者是一种视频编解码器。在您的情况下,MP4 文件可能包含 H.264 视频:在这种情况下,它应该通过在 filesrc
之后放置一个 qtdemux
元素来工作。
【讨论】:
以上是关于是否有命令行命令可以在一行中为 gstreamer 管道测试 appsrc 和 appsink?的主要内容,如果未能解决你的问题,请参考以下文章
Python中的Gstreamer立即退出,但在命令行上很好
是否可以在 discord.py 中为不同的前缀使用不同的命令?