基于嵌入式linux的流媒体传输系统

本文详细介绍了基于嵌入式Linux的流媒体传输系统项目,包括实验平台搭建、BootLoader和内核烧写、Linux系统移植、流媒体服务器的搭建以及MPlayer在ARM上的移植。通过Qt图形界面实现流媒体播放,利用Darwin Streaming Server进行服务器端的视频流服务,实现了流媒体的播放功能。
摘要由CSDN通过智能技术生成

项目设计员姓名:朱炎顺

项目安排总体时间:一个月

嵌入式技术:按照PC机的特点,根据特定的应用需要,通过裁剪软硬件而组成的可以独立运行的系统的一门计算机技术。

流媒体的产生:随着Niternet宽带化的发展趋势,高速的实时传输已成为实现,传统的多媒体在网络上客户端必须把多媒体档全部下载完毕后,在客户端才能播放,而流媒体以流的形式进行数字媒体的传送,在客户端可以边下载边观赏媒体节目。

项目结构   服务器(流媒体服务器端)-------à客户端机(播放流媒体客户端)

技术和实验平台:

Linux构建(实验平台的搭建),网络编程,应用软件的移植,Qt图形界面的开发。

ARM  ---  Mini2410 

   PC机(windows 系统),linux虚拟平台,linux 系统RedHat 5RedHat9

项目流程需求分析----概要设计------详细设计-----编程-----测试项目----修改完善

过程:

实验平台的搭建,bootloader的烧写,内核的烧写到flash,网络档系统的制作。

mplayer的移植,在linux x86上交叉编译mplayer,使得mplayer.能在ARM上运行。

服务器的搭建:搭建windowslinux 流媒体服务器,rtsp协议传输流媒体。

Qt图形界面的设计实现流媒体在客户端图形界面化操作和观赏。

Qt的移植。把在linuxwindow环境下开发出的QT应用程序移植的相应的嵌入式平台上。

实现嵌入式平台的流媒体播放,优化并改善传输性能和质量。

项目到今天终于结束了,回首这一个月,自己是那么的忙碌同时也是那么的艰难。一步一步的走过来,中间不知道遇上了多少困难,遇到困难,解决困难永远都是一件令人兴奋的事情。在这个项目当中付出了相当的汗水,同时也获得了不少的收获。使我从一个对嵌入乃至对计算机毫无了解的我磨砺成了对嵌入式有一定了解的我。做项目是在困难中寻找答案,提升自我。在IT技术上克服困难永远都是一件令人兴奋和快乐的事情。

项目第一步:实验平台的搭建

我们这个项目的实验平台是在EduKit-IV实验箱,   ARM Mini2410上面。 

配置实验箱:烧写BootLoader,内核到flash

嵌入式linux系统在宿主机上编译后,会生产映像档。这个映像档一般来说需要烧写到flash中。如Noflash Nandflash ,一般来说,BootLoader具有擦写Flash的功能,也具有从宿主机上下载映像档的功能,因此我们一般应用BootLoader来固化内核和文件系统。

Linux 基本映像包含三部分:BootLoader,内核,档系统。其中BootLoader采用专门的硬件仿真器来固化。而内核和文件系统可以通过BootLoader来固化。

固化BootLoader ,安装好JTAG线,运行Flash Prammer for ARM软件。设置好软件参数。然后File>Open 选择vivi.cfg 随后选择vivi,点击program开始烧写vivi

Vivi烧写成功后,就可以烧写内核和文件系统映像档了。

打开PC机的超级终端-,开启实验箱电源,同时按下空格键进入vivi的命令行。

bon part 0格式化flash

固化内核  可以按照vivi的固化方法固化linux内核zImage映像

固化ramdisk,可以按照vivi 的固化方法固化linux的档系统映像

这样一个最基本的linux系统就固化成功了。可以设置vivi启动参数来设置启动方式。(出厂采用默认yaffs档系统启动方式)

启动ramdisk档系统

vivi>param ramdisk

vivi>param save

启动yaffs档系统

vivi>param reset   //设置启动参数为进入yaffs档系统

vivi>param save

如果vivi启动的时候使用网络档系统,则vivi参数应设置:

首先开启服务器nfs

Service network start

Service nfs start

Ifconfig eth0 192.168.1.100

设置nfs服务器选项

系统->管理->服务器设置->NFS->添加

/home/rootfs   192.168.*.*   /

开启实验箱电源同时按下空格键进入vivi命令行

vivi>Param set linux_cmd_lineroot=/dev/nfs 

Nfsroot=192.168.1.100:/home/rootfs 

Ip=192.168.1.200:192.168.1.100:192.168.1.1:255.255.255.0:EDUK4:eth0:off

Console=ttySAC1,11520 mem=64M init=/linuxrc noinitrd

vivi>Param save

Vivi>boot

如果挂不上param show 查看vivi启动参数

 注意网络是否通

 注意vivi的启动参数是否绝对正确

 注意主机端服务是否已经开启,并设置好NFS的选项

 注意修改rootfs里面的/etc/init.d/rcS

 一般来讲,rcS档里有设置目标板的ip,因此要主机端的ip要与之在同一网络端。

默认情况下,vivi是启动yaffs档系统,但是如果我们想要更换yaffs档系统怎么办呢?

首先让vivi进入ramdisk档系统:vivi>param ramdisk

vivi>boot  进入ramdik档系统

   其次擦除原来的yaffs

$flash_eraseall /dev/mtd3

MTD3分区映射到/mnt目录

Mount t yaffs /dev/mtdblock/3 /mnt

拷贝rootfs-eduk4-tsp-ys.gzU盘到实验箱并插其到Usb界面

U盘映射到/media目录

$Mount t vfat /dev/ub/a/part1 /media

$tar xzvf  rootfs-eduk4-tsp-ys.gz C /mnt

Umount /mnt

Umount /media

Mini2410 内核开发

Vivi 的编译与固化,kernel 的编译与固化,如何编译busybox,制作跟档目录,以及搭建nfs档系统。

清除前面的配置信息

Make distclean 

配置信息

Make menuconfig

Make 

Make install

下载到flash

如果是用ubun tu  的超级终端minicom 

用命令 load flash vivi x

如果是用windows的超级终端,用usb线下载

用命令 load flash vivi u

内核的编译与固化

内核是linux系统的核心,他与其他系统不同的是,linux系统允许用户根据需要对内核进行重新配置,增加或减少对某些特定设备的支持。

进入源代码

Make distclean

配置所需的功能

Make menuconfig

编译内核

Make  zImage

编译驱动模块

Make modules

固化内核映像

Vivi>load flash kernel x

usb线下载

Vivi>load flash kernel u

档系统的制作

Busybox 编译

Busybox 是一个集成了一百多个常用命令和工具的软件,大小在1M左右,

解压busybox

tar jxzv busybox-1.1.2.tar.bz2

Cp    .config 

Make Distclen

Make menuconfig 

Make 

Make install

生成_install 档夹

拷贝_install 目录档系统

 档系统目录建立:可以用mkdir 命令一个一个的建立,也可以自己编写一个shell脚本档并执行来建立。

应该来说搭建根档系统是一件比较简单的事情,主要是要对档系统的结构要清楚。作为一个普通的作用的档系统,起主要作用的有一下目录:

Sbin 目录,存放系统管理的常用命令

Bin 目录,存放用户管理的常用命令

Lib 目录,存放应用程序运行所需的动态链接库,c.

Opt/Qtopia 存放的是档系统图形界面应用程序和库

Etc 目录,存放档系统启动初始化的一些档。用户的一些的基本信息。特别重要的档就是init.d/rcS

Usr 目录,主要用来存放用户的应用程序。

移植开发篇

移植就是把运行于一个平台的应用程序经过相应编译器编译使之可以在相应平台上一运行起来的过程。

交叉编译器:指在一个平台上用一个编译器编译应用程序能够在另外一个平台上运行的的编译器。

比如在linux 下面的编译器为:gcc   或 g++

但是在linux下的arm交叉编译器则为arm-linux-

交叉编译器一般会有多个版本,在开发时,要下载相应的版本安装。

交叉编译器的安装:

一、把交叉编译器源码包拷贝的linux的根目录

二、解包.tar zxvf arm-linux-gcc -4.3.2.tar.gz -C /

三、修改配置文件:/etc/profile /root/.bashrc

Vim /etc/profile

添加  pathmunge /usr/local/arm/4.3.2/bin

vim /root/.bashrc

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值