如何形成一个gstreamer管道来编码来自tiff文件的mp4视频?

问题描述 投票:0回答:1

我对gstreamer还是陌生的,一直试图组成一个gstreamer管道来对nvidia Jetson平台上tiff文件中的mp4视频进行编码。这是我想出的管道:

gst-launch-1.0 multifilesrc location=%03d.tiff index=0 start-index=0 stop-index=899     blocksize=720000 num-buffers=900 do-timestamp=true typefind=true ! 'video/x-raw,format=(string)RGB,width=(int)1280,height=(int)720,framerate=(fraction)30/1' !     videoconvert ! 'video/x-raw,format=(string)I420,framerate=(fraction)30/1' !     omxh264enc ! 'video/x-h264,stream-format=(string)byte-stream,framerate=(fraction)30/1' ! h264parse ! filesink sync=true location=test.mp4 -e

这样,会成功创建并播放mp4文件,但实际的视频内容都是乱码。知道我在做什么错吗?谢谢

gstreamer mp4 h.264 tiff
1个回答
0
投票

您没有对TIFF数据进行任何多路分解/解码,因此在编码器上抛出了随机字节。

此外,您在做很多事情时都使用大写字母,而在它们之间没有适当的元素可能会正确更改格式。

您应该使用decodebin让GStreamer自动处理大多数事情。例如。像这样的东西:

multifilesrc ! decodebin ! videoconvert ! omxh264enc ! h264parse ! filesink

根据您的编码器,您希望将颜色格式强制为4:2:0,以免偶然地将其以4:4:4编码(这不是很常见,很多编码器都不支持):

multifilesrc ! decodebin ! videoconvert ! video/x-raw, format=I420 ! omxh264enc ! h264parse ! filesink
© www.soinside.com 2019 - 2024. All rights reserved.