[转载]FFmpeg完美入门[4] - FFmpeg应用实例
1 用FFserver从文件生成流媒体
一、安装ffmpeg
在ubuntu下,运行sudo apt-get ffmpeg 安装ffmpeg,在其他linux操作系统下,见ffmpeg的编译过程(编译完成后可执行自动安装)。
二、准备预播放的媒体文件
如test.Mp3,在本文档中,默认放入用户文件夹下得Music文件夹内.(直接从设备采集不在本文档叙述范围之内)
三、修改ffserver配置信息
ffserver配置文件为: /etc/ffserver.conf 打开,填写配置信息.配置信息包括三方面:
1.端口绑定等基本信息,在/etc/ffserver.conf 中有详细注释,在此不再重复,最终配置信息为:
Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
2.媒体文件配置信息.本信息根据具体的媒体文件类型直接在配置文件中取消注释掉相应文件类型的配置信息,然后填写文件路径即可:
# MP3 audio
<Stream test.mp3>
File "/home/xiaoma/Music/test.mp3"
Format mp2
NoVideo </Stream>
四、启动ffserver
在终端中运行: sudo ffserver -f /etc/ffserver.conf 启动ffserver.
五、播放流媒体
在浏览器中输入http://127.0.0.1:8090/test.mp3 即可播放音乐.
在终端中输入ffplay http://localhost:8090/test.mp3 可播放流媒体.
2 用FFserver从设备生成实时流
一、准备媒体按照上节步骤安装ffmpeg,保证摄像头和声卡可用,将从摄像头和声卡获取音视频信息。
二、修改ffserver配置信息
ffserver配置文件为: /etc/ffserver.conf 打开,填写配置信息.配置信息包括三方面:
1.端口绑定等基本信息,在/etc/ffserver.conf 中有详细注释,在此不再重复,最终配置信息为:
Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
2.fend(传冲信息),在文件播放中,基本不用动本配置信息,只需要根据具体情况分配缓冲文件.最终配置信息如
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 2M
ACL allow 127.0.0.1
</Feed>
3.媒体文件配置信息.本信息根据具体的媒体文件类型直接在配置文件中取消注释掉相应文件类型的配置信息,然后填写文件路径即可:
(中间会有很多很多配置信息,都是关于音视频的,有些配置还不懂,慢慢摸索吧)
<Stream test1.mpg>
Feed feed1.ffm
Format mpeg
AudioBitRate 32
AudioChannels 1
AudioSampleRate 44100
VideoBitRate 64
VideoBufferSize 40
VideoFrameRate 3
VideoSize 160x128
VideoGopSize 12
</Stream>
# Flash
<Stream test.swf>
Feed feed1.ffm
Format swf
VideoFrameRate 2
VideoIntraOnly
NoAudio
</Stream>
三、启动FFserver
在终端中运行: sudo ffserver -f /etc/ffserver.conf 启动ffserver.
四、启动ffmpeg 本例中,以ffmpeg作为实时摄像头采集输入.
在命令行中输入: ./ffmpeg -f video4linux2 -r 25 -i /dev/video0 /tmp/feed1.ffm
如果有音频设备,则采集音频的命令如下: ./ffmpeg -f oss -i /dev/dsp -f video4linux2 -r 25 -i /dev/video0 /tmp/feed1.ffm (音频格式参数自己配置)
五、播放流媒体在浏览器中输入
http://127.0.0.1:8090/test1.mpg 即可播放音乐.
在终端中输入ffplay http://localhost:8090/test.swf 可播放流媒体.
转自:http://blog.csdn.net/tx3344/article/details/7958919
[转载]FFmpeg完美入门[4] - FFmpeg应用实例的更多相关文章
- [转载]FFmpeg完美入门[2] - FFmpeg参数说明
1 通用选项 -L license -h 帮助 -fromats 显示可用的格式,编解码的,协议的. -f fmt 强迫采用格式fmt -i filename 输入文件 -y 覆盖输出文件 -t d ...
- [转载]FFmpeg完美入门[3] - FFmpeg功能及使用说明
1 ffplay对多媒体的支持能力验证 一.视频3gp 177X144 支持播放,在windows下播放正常,但是在linux下面偶有BUG 如果发现画面无法显示而声音可以播放的情况下可以试着切换全屏 ...
- [转载]FFmpeg完美入门[1] - FFmpeg介绍及安装
1 FFmpeg简介 FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视 频的完整解决方案.它包含了非常先 ...
- Windows下FFmpeg快速入门
本系列文章导航 Windows下FFmpeg快速入门 ffmpeg参数解释 mencoder和ffmpeg参数详解(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进行视 ...
- Windows下FFmpeg高速入门
本系列文章导航 Windows下FFmpeg高速入门 ffmpeg參数解释 mencoder和ffmpeg參数具体解释(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进 ...
- Windows下FFmpeg快速入门 <第二篇>
FFmpeg简介 FFmpeg是什么? FFmpeg是用于录制.转换和流化音频和视频的完整解决方案, 包括 libavcodec ,一套领先的音/视频编解码类库.FFmpeg 在Linux上开发,当可 ...
- FFMPEG基于内存的转码实例——输入输出视频均在内存
我在6月份写了篇文章<FFMPEG基于内存的转码实例>,讲如何把视频转码后放到内存,然后通过网络发送出去.但该文章只完成了一半,即输入的数据依然是从磁盘文件中读取.在实际应用中,有很多数据 ...
- FFmpeg从入门到出家(HEVC在RTMP中的扩展)
由金山云视频云技术团队提供:FFmpeg从入门到出家第三季: 为推进HEVC视频编码格式在直播方案中的落地,经过CDN联盟讨论,并和主流云服务厂商达成一致,规范了HEVC在RTMP/FLV中的扩展,具 ...
- FFmpeg 学习(七):FFmpeg 学习整理总结
一.FFmpeg 播放视频的基本流程整理 播放流程: video.avi(Container) -> 打开得到 Video_Stream -> 读取Packet -> 解析到 Fra ...
随机推荐
- 【uoj#282】长度测量鸡 结论题
题目描述 给出一个长度为 $\frac{n(n+1)}2$ 的直尺,要在 $0$ 和 $\frac{n(n+1)}2$ 之间选择 $n-1$ 个刻度,使得 $1\sim \frac{n(n+1)}2$ ...
- 【数据库_Mysql】<foreach>标签在Mysql中的使用
foreach属性 属性 描述 item 循环体中的具体对象.支持属性的点路径访问,如item.age,item.info.details.具体说明:在list和数组中是其中的对象,在map中是val ...
- 【明哥报错簿】之【HTTP Status 500 - Servlet.init() for servlet mvc-dispatcher threw exception】
报错:java.lang.NoClassDefFoundError: /factory/config/EmbeddedValueResolver spring或者jdk的问题,解决办法:spring3 ...
- 【Treeview】遍历本地磁盘
一.前言 Treeview控件常用于遍历本地文件信息,通常与Datagridview与ImageList搭配.ImageList控件用于提供小图片给TreeView控件,DatagridView通常显 ...
- 洛谷 P3768 简单的数学题 解题报告
P3768 简单的数学题 题目描述 由于出题人懒得写背景了,题目还是简单一点好. 输入一个整数\(n\)和一个整数\(p,\)你需要求出\((\sum_{i=1}^n\sum_{j=1}^n ijgc ...
- bzoj3192: [JLOI2013]删除物品(树状数组)
既然要从一个堆的堆顶按顺序拿出来放到第二个堆的堆顶,那么我们就可以把两个堆顶怼在一起,这样从一个堆拿到另一个堆只需要移动指针就好了. 换句话说,把1~n倒着,n+1到n+m正着,用一个指针把两个序列分 ...
- hibernate实现数据实体复制保存
hibernate实现数据实体复制保存 2013年12月16日 11:57:22 Hardy008 阅读数:3474 描述:需要将数据的一条记录进行复制保存为一条新记录. 思路:从数据库中取得一条 ...
- 题解【bzoj3529 [SDOI2014]数表】
Description \(T\) 组询问,定义 \(F(n)=\sum\limits_{d|n}d\).每次给出 \(n,m,a\) 求 \[\sum\limits_{i=1,j=1,F(\gcd( ...
- python 深、浅拷贝
Python的数据结构总体分为两类: 1.字符串和数字 2.列表.元组.字典等 一.字符串和数字 对于字符串和数字而言,赋值(=).浅拷贝(copy)和深拷贝(deepcopy)其实都没有意义,因为它 ...
- OpenCV---模板匹配matchTemplate
作用有局限性,必须在指定的环境下,才能匹配成功,是受到很多因素的影响,所以有一定的适应性 模板匹配是一种最原始.最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是 ...