树莓派使用Gstreamer进行视频推流

最近在研究如何使用树莓派进行视频推流推送到云端。进行了各种比较尝试后,认为使用Gstreamer比较好,主要的一点就是想利用Gstreamer的硬件加速。
在使用ffmpeg的的时候软件推流CPU使用率可以达到60%多。同样摄像头使用Gstreamer硬件加速情况下CPU使用率只有不到10%。是非常理想的一种嵌入式设备上的推流方式。
不过这里有个前提是使用树莓派原生系统。
很多人拿树莓派后装了ubuntu,centos等系统,由于有些并不没有很好的与硬件适配的,所以用不了树莓派的显卡资源,导致也没有办法做硬件加速。所以如果考虑做硬件加速的话,还是推进使用树莓派原生系统。

首先,是安装Gstreamer。

1.安装Gstreamer

使用apt-get安装,执行下面命令:

sudo apt-get install gstreamer1.0-toolssudo apt-get  install libgstreamer1.0-0 libgstreamer1.0-0-dbg libgstreamer1.0-dev liborc-0.4-0 liborc-0.4-0-dbg
liborc-0.4-dev liborc-0.4-doc gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-alsa gstreamer1.0-docgstreamer1.0-omx gstreamer1.0-plugins-bad gstreamer1.0-plugins-bad-dbg gstreamer1.0-plugins-bad-doc gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-base-dbg gstreamer1.0-plugins-base-doc gstreamer1.0-plugins-good gstreamer1.0-plugins-good-dbg gstreamer1.0-plugins-good-doc gstreamer1.0-plugins-ugly gstreamer1.0-plugins-ugly-dbg gstreamer1.0-plugins-ugly-docgstreamer1.0-pulseaudio gstreamer1.0-tools gstreamer1.0-x libgstreamer-plugins-bad1.0-0libgstreamer-plugins-bad1.0-dev libgstreamer-plugins-base1.0-0 libgstreamer-plugins-base1.0-dev

2.Gstreamer推流

(1)rtp发送接收

在局域网测试OK:

树莓派端发送:

gst-launch-1.0 -v v4l2src device=/dev/video0 ! 'video/x-raw,width=1280,height=720,framerate=10/1' !
videoconvert ! omxh264enc ! 'video/x-h264, profile=(string)high' ! rtph264pay ! udpsink host=192.168.8.100 port=5600

PC端接收:

gst-launch-1.0 -v udpsrc port=5600 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000,
encoding-name=(string)H264' ! rtph264depay ! avdec_h264 ! autovideosink fps-update-interval=1000 sync=false

(2)rtp发送接收

局域网测试OK

树莓派发送端:

gst-launch-1.0 -v v4l2src device=/dev/video0 ! 'video/x-raw,width=1280,height=720,framerate=10/1' ! videoconvert ! omxh264enc ! 'video/x-h264, profile=(string)high' ! rtph264pay ! "application/x-rtp,payload=(int)103,clock-rate=(int)90000" ! udpsink host=192.168.8.100 port=9004

PC接收端,由于命令太长就写成了bash脚本,下面的指令可以拷贝到bash脚本中运行:

PEER_V=5004
PEER_IP=127.0.0.1
SELF_V=9004
CAPS_V="media=(string)video,clock-rate=(int)90000, encoding-name=(string)H264,payload=(int)103"
bash -c `gst-launch-1.0 -v \rtpsession name=r sdes="applications/x-rtp,cname=(string)\"user\@example.com\"" \udpsrc port=$SELF_V \! "application/x-rtp,$CAPS_V" \! r.recv_rtp_sink \r.recv_rtp_src \! rtph264depay \! decodebin \! autovideosink \udpsrc port=$((SELF_V)) \! r.recv_rtcp_sink \r.send_rtcp_src \! udpsink host=$PEER_IP port=$((PEER_V+1)) sync=false async=false`

树莓派上使用 Gstreamer做视频推流相关推荐

  1. 在玩客云或树莓派上通过ffmpeg将视频推流到直播平台

    为了压榨玩客云的性能,搞了直播推流,下面教大家怎么推流 我把玩客云刷了Powersee的玩客云第二版固件,具体看这里,当然使用树莓派也可以 步骤 1.安装ffmpeg sudo apt-get ins ...

  2. 手机上照片怎么做视频?照片变视频快速教程,原来效果这么炫酷!

    手机上照片做视频,只是那种简单的转变,没有什么效果可言. 然而现在比较受欢迎的照片视频,都是有很多酷炫切换效果的视觉体验,这样分享到社交平台也能得到更多赞和更多关注.想要做出好看效果的照片视频,一般还 ...

  3. python 天气预报地图_在树莓派上用 python 做一个炫酷的天气预报

    #encoding: utf-8 importpygameimporttimeimportweatherAPIimportSystemInfofrom datetime importdatetime# ...

  4. 电脑怎么用照片做视频?哪个软件简单好用?3步教你轻松制作!

    现在都流行用照片随手记录生活.而把照片做成视频,又是现在刷爆抖音.朋友圈的形式.不仅有酷炫的图片切换效果,还带有动听的背景音乐,这样精美又吸睛的照片视频,肯定能让你获得超多赞.现在最方便的方式就是直接 ...

  5. 新手学习实记(十、在树莓派上做图形化界面)

    [前言] 校内实习制作--基于树莓派的云台人脸追踪系统.本文主要是记录我的操作和执行过程. 由于要同时准备考研,所以只能学习做一个简易的系统啦,希望能有收获叭. [个人情况(供看文章的同学参考): ① ...

  6. TikTok上做视频搬运会导致限流吗?

    很多小伙伴经常私信我,在TikTok上面一直做视频搬运在后期会导致限流吗?在这个问题上,涉及的方面会比较多,这里海晓俱乐部给大家写个文章给大家说明白. 首先我们说一点为什么我们一直要强调做tiktok ...

  7. 盛世昊通董车长2.0再上新,做任务吸粉看视频得收益

    好消息,盛世昊通董车长APP2.0再上新啦,视频广告任务大厅新上线,做任务收获粉丝收获爱,看视频获收益得分红.让你轻轻松松看视频,开开心心获收益.邀请你的好友,一起来盛世昊通董车长app体验吧. 盛世 ...

  8. 使用v4l2在树莓派上抓取视频图像

    最近学习使用v4l2在树莓派上抓取视频图像.有些收获,现在分享给大家. 操作的过程为:1.打开摄像头:2.获取摄像头的capability(它所支持的操作)3.获取摄像头支持哪些视频/图片帧格式:4. ...

  9. 树莓派Ubuntu做网页服务器,如何在树莓派上安装 Ubuntu 服务器? | Linux 中国

    导读:第四代树莓派具有了普通台式电脑的功能和处理能力.但本文并非要介绍如何使用树莓派做为桌面.相反,我会告诉你如何在树莓派上安装 Ubuntu 服务器.html 本文字数:3240,阅读时长大约:4分 ...

最新文章

  1. PCL滤波介绍(2)
  2. java jint,JNI:将unsigned int转换为jint
  3. SpringBoot + ShardingSphere 秒级分库分表!
  4. java 开发平台idea_JAVA开发平台intellij idea使用教程:有哪些方法可以实现自动导入...
  5. js中的浅拷贝深拷贝深入理解
  6. 怎样查看本机到一个网站经过多少路由节点?
  7. 【Alpha】Daily Scrum Meeting——Day2
  8. ubuntu E: Could not get lock /var/lib/dpkg/lock - open
  9. 周鸿祎的“流氓”可否借鉴?
  10. ebm风扇选型手册_德国EBM全系列散热风扇
  11. Dialog_xml制作——博客地址
  12. 测试工程师如何规划自己的职业生涯
  13. bootstrap btn 按钮颜色
  14. 解决office的PPT和WPS的PPT不兼容的问题
  15. 读《刻意练习》后感,与原文好句摘抄
  16. 目前几种常见穿NAT的方法分析
  17. Java课程设计-仓库管理系统
  18. 社保只交15年就行?国家白给的羊毛怎么能不薅?
  19. java编程有哪些优点呢
  20. 孙振耀--感悟工作与生活

热门文章

  1. 气传导耳机是什么意思?气传导耳机原理是什么?
  2. 【VSCode PlatformIO】开发STC单片机头文件和常用外设驱动头文件获取方式
  3. 西藏2020年计算机二级报名时间,西藏2020年3月计算机二级考试时间安排
  4. OpenGauss线程管理-主线程-Postmaster(1)
  5. cesium类文档查找
  6. Failing over to RSL framework_4.6.0.23201.swz
  7. 如何搭建手游联运平台?
  8. 2012,回家过年,农村观察再记录
  9. Oracle计算距离当前时间几天、几年、几个月的方法
  10. nginx geo模块、map模块的使用