我尝试使用gst-launch-1.0
显示raw image (1.8MB)。据我所知,在实现这一目标之前,需要将数据编码为JPG。如果图片已经存储为 jpg 文件,那么故事就会非常简单:
gst-launch-1.0.exe -v filesrc location=output.jpg ! decodebin ! imagefreeze ! autovideosink
但是,我需要组装管道以显示由3D应用程序转储到磁盘的raw BGRA 800x600 image(看起来与上面相同)。
这是我到目前为止所做的,但问题是它会在磁盘上创建一个完全黑色的图像:
gst-launch-1.0.exe -v filesrc location=dumped.bin ! video/x-raw,format=BGRA,width=800,height=600,framerate=1/1 ! videoconvert ! video/x-raw,format=RGB,framerate=1/1 ! jpegenc ! filesink location=out.jpg
GStreamer可以处理这项任务吗?
答案 0 :(得分:5)
解决了!我遇到的两个主要问题是:
gst-launch-1.0
无法使用它; filesrc
指定 blocksize 。❄
gst-launch-1.0.exe -v filesrc location=dumped.bin blocksize=1920000 ! video/x-raw,format=BGRA,width=800,height=600,framerate=1/1 ! videoconvert ! video/x-raw,format=RGB,framerate=1/1 ! jpegenc ! filesink location=out.jpg
在这个特定情况下,我还需要垂直翻转图像,因为它是captured from the OpenGL framebuffer of a 3D application:
gst-launch-1.0.exe -v filesrc location=dumped.bin blocksize=1920000 ! video/x-raw,format=BGRA,width=800,height=600,framerate=1/1 ! videoconvert ! video/x-raw,format=RGB,framerate=1/1 ! videoflip method=vertical-flip ! jpegenc ! filesink location=out.jpg