我正在尝试使用gstreamer将图像从标准输入实时转换为视频
例如,我在图像文件夹中有一些jpeg图像,名为img。%04d.jpeg。我想将图像作为stdin流式传输到gstreamer,以便针对我的用例进行实时处理。以下只是一个简单示例
如果我先将其转换为ogg,我可以做到。
gst-launch-1.0 multifilesrc location="image/img.%04d.jpeg" index=0 caps="image/jpeg,framerate=\(fraction\)1/1" ! jpegdec ! videoconvert ! videorate ! theoraenc ! oggmux ! filesink location="images.ogg"
cat images.ogg | gst-launch-1.0 fdsrc fd=0 ! decodebin ! progressreport update-freq=1 ! videoscale ! video/x-raw,width=960,height=480 ! queue ! videoconvert ! videorate ! video/x-raw, framerate=1/1 ! x264enc ! avimux ! filesink location=new_video.avi
但是,如果我想使用以下方法直接将其转换,则avi视频为空
cat image/*.jpeg | gst-launch-1.0 fdsrc fd=0 ! decodebin ! progressreport update-freq=1 ! videoscale ! video/x-raw,width=960,height=480 ! queue ! videoconvert ! videorate ! video/x-raw, framerate=1/1 ! x264enc ! avimux ! filesink location=new_video.avi
有人可以帮助解决此问题吗?请注意,我要使用stdin,因为我的用例是jpeg是实时一对一生成的。