• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

树莓派高清视频直播服务器

snowstorm 2014-07-05 浏览量:12399

项目描述:摄像机拍摄1080p高清视频,编码成h.264格式后,通过网线传输给路由器,客户端通过rtsp地址观看视频

暂定方案:高清视频经FPGA编码成h.264格式,传给树莓派,树莓派将h264码流通过网线传输给路由器

问题:刚接触树莓派,不知树莓派编程方面如何下手,需要学哪些东西,求大神给个指导性的建议~

ps:该方案不知是否可行,希望大家也提点建议~

                   

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案

其他答案 数量:42
  • 摄像机传到树莓派之前既然已经编码成H264然后传送给树莓派,是通过网线传吗?既然如此,为什么不直接传送给路由器呢?

    vlc可以当串流服务器,好像是可以再编码视频进行传输,但在树莓派上当串流服务器,再编码恐怕性能不够

    要是使用树莓派官方摄像头,经过树莓派编码后再传出来,VGA分辨率转发出来能到24FPS以上,720P恐怕也够呛

    能画个简单的流程图吗?

    • 发布于2014-07-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 需要使用RTP协议,恐怕树梅派IO扛不住
    • 发布于2014-07-05
    • 举报
    • 评论 0
    • 0
    • 0

  • rtsp协议也要吧?树莓派要安装哪些东西呢
    • 发布于2014-07-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 我也不清楚FPGA怎么把h264码流传给pi  , 现在还在资料搜集。

    目前手上有个视频监控的板子,上面有编码芯片,使用方法是:摄像头通过av线连接板子,板子再经过一根网线连接路由器,wifi覆盖内的用户通过rtsp地址观看视频,但分辨率只能达到480p。

    我们要做个一样的东西出来,只是分辨率提高了,因为是用在直播上。1080不行的话就720p

    下面的图不知行不?

    • 发布于2014-07-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 你算下1080p画质每分钟产生多少兆数据,树梅派的io能力是多少你了解没有? 你这个项目的难点在于数据的传输。 rtp基于udp协议属于是传输协议,如果是开发的话,你需要写服务端,和客户端。你可以先了解下udp协议 rtsp属于是应用层协议,可以通过tcp/ip 协议或者rtp来传输数据。就像http一样 你这标准单纯安装软件是完成不了的,具体实现是服务端广播数据包,客户端发现特定数据包时接收
    • 发布于2014-07-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 服务端代码是通过什么软件写呢,需要JRTPLIB,Live555吗还是其他的什么
    • 发布于2014-07-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 按照以上流程,派只能用来做码流中传和分发传输,类似于在win平台下安装的windows meida server,派的功能是流媒体服务器,视频流网络进网络出,而且要是这么多用户的话,只能是广播流。谷歌了一下Linux下的流媒体服务器只有Helix Server。恐怕还没有Arm版的。

    看我做的这个实验,实时编码的话,vga大小的视频刚刚流畅

    //www.icxbk.com/group-topic-id-14728.html

    • 发布于2014-07-06
    • 举报
    • 评论 0
    • 0
    • 0

  •  A: 
    是这样算吗:
    1080 * 1920 =2073600(像素数),
    每个像素以32位真彩来显示,需要32位数据,2073600 * 32 = 66355200,这是一帧画面的数据量,
    24fps的话数据再乘以24得1592524800,这是原始的数据,约为1.6G。
    h.264压缩比率100:1(百度百科),除以100得到 16M bit/s ,通过GPIO传给树莓派,树莓派应该足够吧
    Q:
    我现在不知道如何在树莓派上进行rtsp/trp编程,需要安装哪些工具,下载哪些库,学什么,
    c语言我能看懂~~
    希望给个方向,然后具体编程我自己再研究~~
    • 发布于2014-07-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个看你个人感觉了,你觉得那个库容易上手,封装的最接近你的需求就用哪个

    数据采集推荐你用v4l2

    • 发布于2014-07-06
    • 举报
    • 评论 0
    • 0
    • 0

  • FPGA这块我不懂,这儿有个用VLC转发视频流的教程,你可以尝试一下:

    http://blog.csdn.net/zhangcan919/article/details/7054330

    • 发布于2014-07-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 压缩后的视频采集是通过usb接口么
    • 发布于2014-07-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 有人试过用USB的视频采集卡,标清的,EasyCap的,淘宝几十块钱的那种,卡爆了,所以不要尝试,GPIO通讯的话带宽好像也不高,你看,这儿有个树莓派使用SPI接口显示视频的例子,320*240的分辨率都这么麻烦了,高清不要想了。所以感觉用派这个方案不可行。

    http://www.eeboard.com/bbs/forum.php?mod=viewthread&tid=4499

    USB摄像头,高清也非常卡,你也可以试一下。

    还有就是视频的实时压缩与转发,像电视台之类的都是用的非常专业的方案。

    倒是有个例外。

    树莓派上用USB的DVB接收器,码流8M以内,转发出来很流畅呢,但这也只是看一路流畅,多一路就不行了,这和树莓派的处理能力与网络带宽非常有关系。硬件设计,硬件驱动,树莓派视频硬解能力、软件支持这几项息息相关啊。

    • 发布于2014-07-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 感谢各位的热心指导,综合考虑各方面因素,arm板现已换成tiny210,处理器为三星s5pv210,cotexA8架构

    虚拟机:ubuntu 64位 版本号12.04.4        gcc版本4.6.3       arm-linux-gcc版本4.4.3 

    方案:v4l2视频采集 + mfc硬件264编码 + live555直播

    当前遇到的困难:编译时遇到如下错误信息

    ../liveMedia/libliveMedia.a: could not read symbols: File format not recognized
    collect2: ld returned 1 exit status
    求解大概是什么原因?本人新手~~

    • 发布于2014-08-03
    • 举报
    • 评论 0
    • 0
    • 0

  • 貌似是64位的Ubuntu识别不了32位的库文件?最好在32位系统下搞。
    • 发布于2014-08-03
    • 举报
    • 评论 0
    • 0
    • 0

  • 源代码:SsbSipMfcEncAPI.c       compress.c        capture.cpp        ccl.cpp(放main函数的文件)

    每个文件都include有很多头文件,截图在最下面,包括四个源代码的include、所有文件以及编译错误

    不太会写makefile,就直接输入如下5条命令

    1    arm-linux-gcc -c -g3 -O0 -fPIC -I../UsageEnvironment/include -I../groupsock/include  -I../liveMedia/include -I../BasicUsageEnvironment/include SsbSipMfcEncAPI.c
    2    arm-linux-gcc -c -g3 -O0 -fPIC -I../UsageEnvironment/include -I../groupsock/include  -I../liveMedia/include -I../BasicUsageEnvironment/include compress.c
    3    arm-linux-g++ -c -g3 -O0 -fPIC -I../UsageEnvironment/include -I../groupsock/include  -I../liveMedia/include -I../BasicUsageEnvironment/include capture.cpp
    4    arm-linux-g++ -c -g3 -O0 -fPIC -I../UsageEnvironment/include -I../groupsock/include  -I../liveMedia/include -I../BasicUsageEnvironment/include ccl.cpp
    5    arm-linux-gcc -o ccl *.o ../liveMedia/libliveMedia.a ../groupsock/libgroupsock.a ../BasicUsageEnvironment/libBasicUsageEnvironment.a ../UsageEnvironment/libUsageEnvironment.a -fPIC -L/usr/local/lib -lavcodec -lavutil -g3 -O0 -lccgnu2 -lpthread -lstdc++

    注释:其中前4条命令每条命令的4个 -I..是live555的四个头文件,但只有ccl.cpp用到了这些头文件

    最后一条命令的四个.a文件是live555的四个库

    结果:前4条正常,产生4个.o文件 ,最后一条出错。见截图。



    • 发布于2014-08-03
    • 举报
    • 评论 0
    • 0
    • 0

  • liveMedia/libliveMedia.a .是什么平台的啊?这个静态库应该是需要arm版本的,如果没有arm版本的那就需要有源源码重新编译为arm平台,看来之前的问题不是64位与32位的问题,而是X86架构与arm构架的问题。不过Linux最好还是用32位平台的,之前我用64位编译东西时就出了不少错。
    • 发布于2014-08-03
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

树莓派高清视频直播服务器