我使用以下命令转储了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格式。
答案 0 :(得分:0)
那么您的期望是什么?根据定义,原始的YUV没有标题-它们是原始的。通常,读取这些文件的应用程序要求您像yuvtoppm一样设置宽度,高度和格式。
您可能想签出y4menc
,这可能会向这些文件添加标头,某些应用程序可能会读取这些文件。
或者您可以将其存储为视频文件-matroskamux
和avimux
应该能够处理未压缩的数据。