我正在尝试创建一个 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 缓冲区(使用push-buffer)。每个缓冲区的大小为 4095。
不幸的是,GStreamer 在推送 2 个缓冲区后会打印以下调试消息:
错误:内部数据流错误。
有没有办法解决这个问题?