gstreamer - Gstreamer souphttpsrc到 rtp h263编码流

  显示原文与译文双语对照的内容
0 0

我正在尝试创建一个管道,以将jpeg流传输到h263编码流中。 执行时:


gst-launch -v 
 souphttpsrc 
 location=http://192.168.1.54:8080 
 do-timestamp=true 
! multipartdemux! image/jpeg,width=352,height=288 
! ffmpegcolorspace! video/x-raw-yuv,framerate=15/1 
! videoscale 
! ffenc_h263! rtph263pay 
! udpsink host=192.168.1.31 port=1234

gstreamer报告:


Setting pipeline to PAUSED.. .
Pipeline is PREROLLING.. .
/GstPipeline:pipeline0/GstCapsFilter:capsfilter2: caps = image/jpeg, width=(int)352, height=(int)288
ERROR: from element/GstPipeline:pipeline0/GstSoupHTTPSrc:souphttpsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2507): gst_base_src_loop ():/GstPipeline:pipeline0/GstSoupHTTPSrc:souphttpsrc0:
streaming task paused, reason not-linked (-1)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL.. .
/GstPipeline:pipeline0/GstMultipartDemux:multipartdemux0.GstPad:src_0: caps = NULL
Freeing pipeline.. .

我已经检查了这些元素是否存在。 我已经在 ffenc_h263 。ffmpegcolorspace和这个命令中的其他元素上运行了gst检查。 gst检查不报告任何错误。 是否有什么我缺少的?

时间: 原作者:

0 0
  1. multipartdemux 后需要 jpegdec 解码jpeg流成原始视频。
  2. 你不需要 ffmpegcolorspace,因为 jpegdec 转换为 video/x-raw-yuv
  3. 这里没有 videoscale,因为你没有指定输出流的宽度/高度。

尝试这个:


gst-launch -v 
 souphttpsrc 
 location=http://192.168.1.54:8080 
 do-timestamp=true 
! multipartdemux 
! image/jpeg,width=352,height=288,framerate=15/1 
! jpegdec! ffenc_h263! rtph263pay 
! udpsink host=192.168.1.31 port=1234

原作者:
...