请选择 进入手机版 | 继续访问电脑版

雨林木风

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 58|回复: 0

Ubuntu下Ffmpeg编译及实现流播放总结

[复制链接]

6401

主题

6409

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19783
发表于 2019-12-13 09:07:44 | 显示全部楼层 |阅读模式
  研究了一个星期,今天终于将服务器架设起来了.心理舒坦,所以总结一下
  我使用的操作系统是:Ubuntu 9.10
  我是参考这里的来进行编译的插件安装的,不过有些插件安装不上,
  注意在Ubuntu下如果执行命令make install失败,则使用sudo make install使用root 权限来执行,因为有些目录普通用户不能创建
  基本编译过程和需要安装的差价包上面博客讲的很详细,网上也有很多教程,
  一、安装编译所需的工具和库:
  (1)先可以执行命令:
  sudo apt-get purge ffmpeg x264 libx264-dev
  清除原来的安装包
  (2)然后执行命令:
  sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libMP3lame-dev libsdl1.2-dev libtheora-dev libx11-dev libxvidcore4-dev zlib1g-dev
  二、编译和安装x264库
  git clone git://git.videolan.org/x264.git
  cd x264
  ./configure
  make
  sudo make install
  有时候编译不过去,则可以使用新力德软件安装程序来进行安装,使用方便
  三、编译和装ffmpeg:
  svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
  cd ffmpeg
  ./configure –enable-gpl –enable-nonfree –enable-pthreads –enable-libfaac –enable-libfaad –enable-libMP3lame –enable-libtheora –enable-libx264 –enable-libxvid –enable-x11grab –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libopencore-amrnb –enable-version3
  make
  sudo make install
  在此我遇到了一个奇怪的问题,编译是通过了,但是编译出来的ffmpeg有问题,在进行流媒体解码时出错,于是我去官方网站手动下载了ffmpeg源码包
  顺利编译完成后,输入命令ffserver,ffmpeg,ffplay都会有相应的提示,说明你以经安装完成,具体安装在哪里,一般在/usr/local/bin/下面,也可以在./configure参数指定
  接下来,我们通过ffserver,ffmpeg,ffplay,来时间流媒体播放功能
  第一步:
  ffserver.conf 配置
  Port 8090
  BindAddress 0.0.0.0
  MaxHTTPConnections 2000
  MaxClients 1000
  MaxBandwidth 1000
  CustomLog -
  NoDaemon
  
  File "test.flv"
  Format flv
  
  
  File "Blur.MP3"
  Format flv
  
  
  File /tmp/feed1.ffm
  FileMaxSize 2M
  ACL allow 127.0.0.1
  
  
  Feed feed1.ffm
  Format flv
  
  
  URL http://www.ffmpeg.org/
  
  参数说明:
  我上面创建了三个流,其中Blue,testflv都是直接使用本地文件创建的
  
  File "Blur.MP3"
  Format flv
  
  表示创建一个以当前文件所在目录下的Blur.MP3创建的流,Blue,并将他以flv格式播放
  Feed feed1.ffm>
  File /tmp/feed1.ffm
  FileMaxSize 2M
  ACL allow 127.0.0.1
  
  表示:在/tmp/下创建一个缓冲区,feed1.ffm,大小为2M,这个可以自己根据需要修改
  ACL allow 127.0.0.1 表示可以访问的IP
  
  Feed feed1.ffm
  Format flv
  
  表示:以缓冲区feed1.ffm 创建的流mytest
  其它东西不用管,OK,ffserver.conf配置好后,我们开始启动ffserver服务器
  启动命令:
  打开终端,输入 ffserver -f ffserver.conf 命令启动ffserver
  这里注意,你的ffserver.conf路径,我一般是在当前ffserver.conf所以的文件夹下运行终端的
  当启动成功后,就不用管了,我们另开启一个终端测试,是否配置成功
  输入:
  ffplay http://localhost:8090/Blue
  或
  ffplay http://localhost:8090/testflv
  如果能正常播放的话,那说明已经配置成功了
  现在我们要做的是通过ffmpeg来将,数据字入缓冲区feed1.ffm中
  注意,由于我们现在的缓存冲只有2M所以,当缓冲区的内容满后,他会自动覆盖
  我们打开一个新的终端:
  输入:ffmpeg -i inputfile -an http://localhost:800/feed1.ffm
  启动ffmpeg
  inputfile 为输入文件名,由于要达到电影播放效果,我使用了一个MP4格式的电影,后成,是将数据写了缓冲区feed1.ffm
  如果没有问题,则会出现转换数据,一直在转换,那说明正在转换了,本人刚开始用svn下载的版本,在此执行就出问题了,后面自己去官方网站下载了一个ffmpeg源码压缩包,便运行成功了
  OK,现在我们再用ffplay测试一下吧
  新开一个终端输入:ffplay http://localhost:8090/mytest
  OK,达到我们想要的效果了。。如果大家在以上出现什么问题,可以和我交流
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

|appname
快速回复 返回顶部 返回列表