从 gst fbdevsink 上的元素“pipeline0”获取 EOS

从 gst fbdevsink 上的元素“pipeline0”获取 EOS

我正在尝试将视频文件转发到我的设备上没有 X 的帧缓冲区。我正在使用gstreamer插件fbdevsink

  • 当我测试它时
    gst-launch-1.0 videotestsrc ! fbdevsink
    
    它工作得很好。
  • 但是,当我尝试使用命令打开设备上的任何视频文件时
    gst-launch-1.0 filesrc location=right_top1.mp4 ! fbdevsink
    
    它立即停止工作并输出
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    Got EOS from element "pipeline0".
    Execution ended after 0:00:00.006988697
    Setting pipeline to NULL ...
    Freeing pipeline ...
    

我无法弄清楚发生了什么,因为即使我添加调试(-v --gst-debug-level=2)输出也是相同的。

如果重要的话,我正在开发带有 Yocto 操作系统的 Nvidia Jetson Nano。

你们知道如何解决或只是调试它吗?

答案1

我终于放弃gstreamer并使用了,ffmpeg没有任何问题。

命令如下所示:

ffmpeg -fflags nobuffer -flags low_delay -rtsp_transport tcp -stimeout 1000000 -i <RTSP_stream_addr> -pix_fmt bgra -loglevel

相关内容