Chinaunix首页 | 论坛 | 博客
  • 博客访问: 185705
  • 博文数量: 40
  • 博客积分: 2036
  • 博客等级: 大尉
  • 技术积分: 430
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-12 22:39
文章分类

全部博文(40)

文章存档

2013年(3)

2012年(1)

2011年(18)

2010年(18)

分类:

2010-07-08 11:11:41

这问题折腾了我好几天了,。。。。刚才终于解决了,赶紧上来记录下。。。:-)
设计的基本思路是,通过GStreamer向远程服务器端发送H.264视频编码流,并在发送的过程中在本地进行播放。远程服务器端接受并播放。
使用的协议是rtp+udp。

gst-launch gstrtpbin name=rtpbin latency=1000 \
        uridecodebin uri=file:///home/xingmin/nobody.avi name=decoder \
        decoder. ! tee name=tee \
        tee. ! queue2 ! ffmpegcolorspace ! videoscale ! ximagesink \
        tee. ! queue2 ! ffmpegcolorspace ! x264enc ! rtph264pay pt=96 ! queue2 ! rtpbin.send_rtp_sink_0 \
        rtpbin.send_rtp_src_0 ! queue2 ! udpsink host=211.64.*.* port=5000 \
        rtpbin.send_rtcp_src_0 ! queue2 ! udpsink host=211.64.*.* port=5001 sync=false async=false \
        udpsrc port=5005 ! queue2 ! rtpbin.recv_rtcp_sink_0 \
        decoder. ! queue2 ! audioconvert ! alsasink
上面这段代码,靠,弄了我几天了,自己实在是找不出问题,急的焦头烂额。。。。。。。
Google上GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG.......................
可就是没有这问题!!!!
在GStreamer的邮件列表里面也没搜的问题,所以只好发贴求救。
还好,昨天,有一个人回了,虽然仍不管用。
又G。。。了一上午,在Maillist里面一页一页的翻,不知从哪来的灵感,突然在udpsink后面也加上了sync=false async=false,一试,能工作了!!!

^_^。。。。惊喜万分!!!
虽然,能发送到服务器端,但是本地播放视频和声音不同步,并且很卡,但是主要问题已经解决了。
下面是完整的代码:
  gst-launch --gst-debug=2 gstrtpbin name=rtpbin latency=1000 \
        uridecodebin uri=file:///home/xingmin/nobody.avi name=decoder \
        decoder. ! tee name=tee \
        tee. ! queue2 ! ffmpegcolorspace ! videoscale ! ximagesink \
        tee. ! queue2 ! ffmpegcolorspace ! x264enc ! rtph264pay pt=96 ! queue2 ! rtpbin.send_rtp_sink_0 \
        rtpbin.send_rtp_src_0 ! queue2 ! udpsink host=211.64.*.* port=5000  sync=false async=false \
        rtpbin.send_rtcp_src_0 ! queue2 ! udpsink host=211.64.*.* port=5001 sync=false async=false \
        udpsrc port=5005 ! queue2 ! rtpbin.recv_rtcp_sink_0 \
        decoder. ! queue2 ! audioconvert ! alsasink
阅读(6697) | 评论(3) | 转发(2) |
给主人留下些什么吧!~~

chinaunix网友2010-08-16 10:13:10

运行了你上面的代码,为什么说没有0:00:00.014636399 18103 0x8be8070 ERROR GST_PIPELINE ./grammar.y:661:_gst_parse_yyparse: 无组件“x264enc” 0:00:00.054852534 18103 0x8be8070 ERROR GST_PIPELINE ./grammar.y:614:gst_parse_perform_link: 无法将 ffmpegcsp1 链接到 rtph264pay0 警告: 错误管道: 无组件“x264enc”

chinaunix网友2010-08-12 15:43:33

我安装你上面的命令试了,说是缺少alsasink ximagesink这两个,想问一下,这两个应该是从什么地方下载后,再往哪里加呀

chinaunix网友2010-08-11 11:30:12

我是刚接触GStreamer的,您上面的这段代码我试了,为什么不行,你的编译环境是什么?我是在windows下安装的,会不会和这个有关系?请您多多指教,谢谢!