使用Gstreamer压缩H264流

我正在尝试创建一个GStreamer管道( v 1.0 )以便记录和播放特殊文件格式。

为了记录目的,我使用以下管道:

gst-launch-1.0 videotestsrc ! video/x-raw-yuv, format=(fourcc)I420,  width=640, height=480 ! videoconvert ! x264enc byte-stream=1 ! queue ! appsink

在appsink中(使用new_sample()回调),我使用压缩方法来压缩H264流,最后将其存储在输出文件中。

我使用下面的管道播放录制的文件:

gst-launch-1.0 appsrc ! video/x-h264 ! avdec_h264 ! autovideosink

在appsrc中,我解压缩H264流并将其发送到appsrc缓冲区(使用推缓冲区)。 每个缓冲区的大小是4095。

不幸的是,在push 2缓冲区后GStreamer会打印以下调试消息:

错误:内部数据流错误。

有没有办法解决这个问题?


  • 在解码器之前添加legacyh264parse或h264parse(取决于您的gst组件版本)。 您需要能够将全部帧发送到解码器。

  • 发布avdec_h264这将是一个很好的ffmpegcolorspace能够将视频格式转换为您的显示需求。

  • 链接地址: http://www.djcxy.com/p/25421.html

    上一篇: Compress H264 Stream Using Gstreamer

    下一篇: Using custom camera in OpenCV (via GStreamer)