我使用以下命令转储JPEG帧:
gst-launch-1.0 filesrc location=<FILE LOCATION>! qtdemux name=demux demux.video_0 ! queue ! decodebin ! videoconvert ! jpegenc ! multifilesink location=frame%d.yuv
JPEG图像显示正常。
当我尝试使用以下命令从mp4文件转储YUV帧时:
gst-launch-1.0 filesrc location=[FILE LOCATION] ! qtdemux name=demux demux.video_0 ! queue ! decodebin ! videoconvert ! multifilesink location=frame%d.yuv
我无法看到图像,因为转储的框架没有标题细节(宽度和高度)。
使用以下命令将此帧转换为ppm格式后:
yuvtoppm [WIDTH] [HEIGHT] frame1.yuv > frame1.ppm
我能够看到框架,但它不是YUV格式。
那你的期望是什么?根据定义,原始YUV没有标题 - 它们是原始的。通常,阅读这些文件的应用程序需要您设置yuvtoppm的宽度,高度和格式。
您可能想要查看y4menc
,它可能会为某些应用程序可能读取的这些文件添加标题。
或者您可以将其存储为视频文件 - matroskamux
和avimux
应该能够处理未压缩的数据。