是否有命令行命令可以在一行中为 gstreamer 管道测试 appsrc 和 appsink?

Is there command line command to test appsrc and appsink in a single line for gstreamer pipeline?

我要编写的代码

  1. 从 h264 编码的 mp4 文件获取缓冲区
  2. 将缓冲区传递给 appsink
  3. 然后在另一个管道中,appsrc 将读取缓冲区
  4. 缓冲区将是 h264parse,然后使用 GstRTSPServer 通过 rtp 发送出去

想要针对 CLI 管道对此进行模拟以确保视频上限正常工作:

我的尝试如下: gst-launch-1.0 filesrc location=video.mp4 !应用程序接收器名称=我的接收器!应用程序名称=mysrc! video/x-h264 宽度=720 高度=480 帧率=30/1 ! h264parse 配置间隔=1! rtph264pay name=pay0 pt=96 ! udpsink 主机=192.168.x.x 端口=1234

但这并没有真正起作用,我不太确定这就是 appsrc 和 appsink 的使用方式

哪位大侠能赐教一下吗

编辑: 我正在尝试播放的文件具有以下 属性

一般 完整名称:video3.mp4 格式 : AVC Format/Info : 高级视频编解码器 文件大小: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

谢谢

您将无法使用 appsinkappsrc 执行此操作,因为它们明确表示要由应用程序用来处理 input/output 缓冲区。

也就是说,如果您真正想要测试两侧的电容,只需将它们连接在一起即可。他们都宣传“任何”上限,这意味着他们不会真正影响上限谈判。

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 元素来工作。