需要从MP4文件中转储YUV帧

时间:2019-04-15 13:39:49

标签: gstreamer

我使用以下命令转储了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格式。

1 个答案:

答案 0 :(得分:0)

那么您的期望是什么?根据定义,原始的YUV没有标题-它们是原始的。通常,读取这些文件的应用程序要求您像yuvtoppm一样设置宽度,高度和格式。

您可能想签出y4menc,这可能会向这些文件添加标头,某些应用程序可能会读取这些文件。

或者您可以将其存储为视频文件-matroskamuxavimux应该能够处理未压缩的数据。