如何形成gstreamer管道,对来自tiff文件的mp4视频进行编码?

如何形成gstreamer管道,对来自tiff文件的mp4视频进行编码?,gstreamer,mp4,h.264,tiff,Gstreamer,Mp4,H.264,Tiff,我是gstreamer的新手,我一直在尝试在nvidia Jetson平台上构建一个gstreamer管道,对来自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-r

我是gstreamer的新手,我一直在尝试在nvidia Jetson平台上构建一个gstreamer管道,对来自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文件就可以成功创建并播放,但实际的视频内容都是乱码。知道我做错了什么吗?谢谢

您没有对TIFF数据进行任何解复用/解码,因此您向编码器抛出随机字节

此外,您正在使用大写字母做很多事情,但其间没有适当的元素,这可能会正确地更改格式

您应该使用
decodebin
让GStreamer自动处理大部分事情。例如,类似这样的事情:

multifilesrc ! decodebin ! videoconvert ! omxh264enc ! h264parse ! filesink
根据您的编码器,您希望强制颜色格式为4:2:0,以便它不会意外地以4:4:4进行编码(这不是很常见,许多编码器都不支持):


我认为这与比特率和/或关键帧有关,另请参阅,谢谢您使用decodebin的建议。。这有帮助!帧速率仍然不正确,视频播放速度太快,我正在调试。关于您关于“不进行任何解复用/解码”的评论,我尝试过使用“avdec_tiff”,但也无法使用它构建管道。事实上,您必须设置帧速率(但不确定什么是最佳方式),因为图像序列没有帧速率。因此,它可能默认为某个值(可能为25)。
multifilesrc ! decodebin ! videoconvert ! video/x-raw, format=I420 ! omxh264enc ! h264parse ! filesink