0

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

4

1 回答 1

0

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

您可能想检查y4menc哪些可能会在这些文件中添加一些应用程序可能能够读取的标题。

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

于 2019-04-15T16:02:17.680 回答