ffmpeg与TS
http://blog.csdn.net/shuyong1999/article/details/7176329
一个不错的音视频博客
0. 简介
FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作 系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、 Matroska、ASF等90多种解码.TCPMP, VLC, MPlayer等开源播放器都用到了FFmpeg。
FFmpeg主目录下主要有libavcodec、libavformat和libavutil等子目录。其中libavcodec用于存放各个
encode/decode模块,libavformat用于存放muxer/demuxer模块,libavutil用于存放内存操作等辅助性模块。
以flash movie的flv文件格式为例,
muxer/demuxer的flvenc.c和flvdec.c文件在libavformat目录下,encode/decode的
mpegvideo.c和h263de.c在libavcodec目录下。
1.准备ffmpeg-0.9
2.目录
ffmpeg-0.9
|-- avconv.c
|-- Changelog
|-- cmdutils.c
|-- cmdutils_common_opts.h
|-- cmdutils.h
|-- common.mak
|-- configure
|-- COPYING.GPLv2
|-- COPYING.GPLv3
|-- COPYING.LGPLv2.1
|-- COPYING.LGPLv3
|-- CREDITS
|-- doc
|-- Doxyfile
|-- ffmpeg.c
|-- ffplay.c
|-- ffpresets
|-- ffprobe.c
|-- ffserver.c
|-- INSTALL
|-- libavcodec
|-- libavdevice
|-- libavfilter
|-- libavformat
|-- libavutil
|-- libpostproc
|-- libswresample
|-- libswscale
|-- LICENSE
|-- MAINTAINERS
|-- Makefile
|-- mt-work
|-- presets
|-- README
|-- RELEASE
|-- subdir.mak
|-- tests
|-- tools
|-- VERSION
`-- version.sh
3.目录解析
libavcodec用于存放各个encode/decode模块,CODEC其实是Coder/Decoder的缩写,也就是编码解码器;用于各种类型声音/图像编解码。
libavformat用于存放muxer/demuxer模块,对音频视频格式的解析;用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;
其中库 libavcodec,libavformat用于对媒体文件进行处理,如格式的转换;
libavutil集项工具,包含一些公共的工具函数;用于存放内存操作等辅助性模块,是一个通用的小型函数库,该库中实现了CRC校验码的产生,128位整数数学,最大公约数,整数开方,整数取对数,内存分配,大端小端格式的转换等功能
libavdevice:对输出输入设备的支持;
libpostproc:用于后期效果处理;
libswscale:用于视频场景比例缩放、色彩映射转换;
ffmpeg软件包经编译过后将生成三个可执行文件,ffmpeg,ffserver,ffplay。其中ffmpeg用于对媒体文件进行处理,ffserver是一个http的流媒体服务器,ffplay是一个基于SDL的简单播放器。
5.配置编译
./configure --enable-shared --disable-static
make
妈呀,支持好多的库啊
6.使用ffmpeg+ffserver+ffplay实现视频点播
6.0准备
6.0.1ffmpeg
sudo apt-get install ffmpeg
采用debian6自带的ffmpeg,ffmpeg-0.9自编译的ffmpeg工具采集音频时不支持alsa参数(还没找到问题)
6.0.2罗技C270无驱摄像头
debian6对C270的支持,就参照上一篇文章
6.1节目源
USB摄像头:罗技C270,无驱。
6.1.1对视频的支持:/dev/video0
6.1.2对音频的支持状态:cat /dev/sndstat
Sound Driver:3.8.1a-980706 (ALSA v1.0.21 emulation code)
Kernel: Linux debian 2.6.32-5-686 #1 SMP Thu Nov 3 04:23:54 UTC 2011 i686
Config options: 0
Installed drivers:
Type 10: ALSA emulation
Card config:
HDA Intel at 0xf9ff8000 irq 22
USB Device 0x46d:0x825 at usb-0000:00:1a.0-1.2, high speed
HDA NVidia at 0xfbc00000 irq 16
Audio devices: NOT ENABLED IN CONFIG
Synth devices: NOT ENABLED IN CONFIG
Midi devices: NOT ENABLED IN CONFIG
Timers:
31: system timer
6.1.3 对音频设备支持的设备节点

controlC1可能就是对应的音频设备文件(推测)
6.1.4 对音频设备MIC的音频采集
请参照其他的文章!(还没做)
6.2视频服务器启动
6.2.1服务器配置:ffmpeg-0.9/tests/ffserver.conf
6.2.2启动:ffserver -f ffmpeg-0.9/tests/ffserver.conf
6.2视频采集发往服务器ffmpeg -i test1.mpg http://<server name or ip>:8090/feed1.ffm
6.2.1发往网络 sudo ffmpeg -f video4linux2 -s 320*240 -r 10 -i /dev/video0 http://127.0.0.1:8090/feed1.ffm
16 -ar 22050 -ac 1 -f mp3 -f flv http://127.0.0.1:8090/feed1.ffm
6.2.2保存为本地数据:sudo ffmpeg -f video4linux2 -s 320*240 -r 10 -i /dev/video0 test.asf
6.2.3采集音视频数据: ffmpeg -f alsa -ab 32 -i pulse -f video4linux2 -s qcif -i /dev/video0 out.mpg
6.2.4采集音视频数据
If you specify the input format and device then ffmpeg can grab videoand audio directly.
ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg |
Or with an ALSA audio source (mono input, card id 1) instead of OSS:
ffmpeg -f alsa -ac 1 -i hw:1 -f video4linux2 -i /dev/video0 /tmp/out.mpg |
Note that you must activate the right video source and channel beforelaunching ffmpeg with any TV viewer such asxawtv by Gerd Knorr. You alsohave to set the audio recording levels correctly with astandard mixer.
6.2.4Linux下用 FFMPEG 采集 usb摄像头视频 和 摄像头内置麦克风音频 到RTMP服务
ffmpeg -f video4linux2 -qscale 10 -r 12 -s 640x480 -i /dev/video0 -f
alsa -i hw:1 -ab 16 -ar 22050 -ac 1 -f mp3 -f flv
rtmp://127.0.0.1/rtmpsvr/rtmp1
16 -ar 22050 -ac 1 -f mp3 -f flv http://127.0.0.1:8090/feed1.ffm
6.4客户端视频播放:ffplay http://localhost:8090/test1.mpg
ffplay http://127.0.0.1:8090/test1.mpg
7.libavformat
5.1av_register_all()
ffmpeg与TS的更多相关文章
- 分析ffmpeg解析ts流信息的源码
花费一些时间,然后全部扔了.为了不忘记和抛砖引玉,特发此贴. ffmpeg解析ts流 1.目的 打算软件方式解析出pat,pmt等码流信息 2.源代码所在位置 下载ffmpeg ...
- ffmpeg解析TS流
介绍: MPEG的系统层编码为不同的应用场景设计了两种格式: TS(Transport Stream) 和PS(Program Stream), 它们两者之间不具有层级关系, 在逻辑上,它们两者都 ...
- ffmpeg把ts文件转m3u8并切片
Linux_x86_64流媒体环境:nginx + EasyDarwin-master 客户端播放器:VLC media player 下载windows下的ffmepg二进制版本,请进网站http: ...
- ffmpeg 视频ts切片生成m3u8
下面几种转换方式是不同版本和方法 新版本ffmpeg转视频直接可以切边并生成 m3u8(目前用的方式,也可以用选项 segment ): ffmpeg -i '源文件.mp4' -c:v h264 - ...
- ffmpeg h264+ts +(sdl)显示方式
网友: 明月惊鹊(357161826) 2014-1-16 10:07:00ffmpeg + sdl一米阳光(740053660) 2014-1-16 10:08:29Simple DirectMed ...
- ffmpeg h264+ts +udp传输
http://bbs.csdn.net/topics/370246456 http://1229363.blog.163.com/blog/static/19743427201001244711137 ...
- 转:Nginx+ffmpeg的HLS开源服务器搭建配置及开发详解
转:http://itindex.net/detail/51186-nginx-ffmpeg-hls 本文概述: 至目前为止,HLS 是移动平台上非常重要并十分流行的流媒体传输协议.做移动平台的流媒体 ...
- 使用ffmpeg搭建HLS直播系统
[时间:2018-04] [状态:Open] [关键词:流媒体,stream,HLS, ffmpeg,live,直播,点播, nginx, ssegment] 0 引言 本文作为HLS综述的后续文章. ...
- FFmpeg多媒体文件格式探测
FFmpeg版本:3.4 在FFmpeg中,每一种文件容器格式都对应一种AVInputFormat 结构,位于源码中libavformat文件夹中.当调用avformat_open_input的时候, ...
随机推荐
- apache 把404页面的url转发给php脚本处理
# .htaccess1 RewriteCond %{REQUEST_FILENAME} !-f 2 RewriteRule ^(.*)$ map.php?host=%{HTTP_HOST}& ...
- HDU 1097.A hard puzzle-快速幂/取模
快速幂: 代码: ll pow_mod(ll a,ll b){ ll ans=; while(b){ ==){ ans=ans*a%mo ...
- 洛谷P3941入阵曲
题目传送门 这道题也是今年湖南集训队Day8的第一题,昨天洛谷的公开赛上又考了一遍,来发个记录(其实是因为五月天,另外两道题分别是将军令和星空,出这次题目的人肯定同为五迷(✪㉨✪)) 话不多说.先理解 ...
- 洛谷——P2388 阶乘之乘
P2388 阶乘之乘 题目背景 不告诉你…… 题目描述 求出1!*2!*3!*4!*……*n!的末尾有几个零 输入输出格式 输入格式: n(n<=10^8) 输出格式: 有几个零 输入输出样例 ...
- 洛谷——P1743 矩阵 III
P1743 矩阵 III 题目背景 usqwedf 改编系列题. 题目描述 给定一个n*m的矩阵,问从左上角走到右下角有多少条路径. 输入输出格式 输入格式: 一行两个正整数 n,m 输出格式: 路径 ...
- Meeting Rooms II -- LeetCode
Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...
- 【线段树】HDU1394 - Minimum Inversion Number
[题目大意] 给出0..n-1组成的一段数,可以移动前几个数到结尾.求出最小的逆序对个数. [思路] 先用线段树求出逆序对,方法和树状数组是一样的.然后对于当前第一个数num[0],在它之后比它小的数 ...
- (原创)Stanford Machine Learning (by Andrew NG) --- (week 1) Linear Regression
Andrew NG的Machine learning课程地址为:https://www.coursera.org/course/ml 在Linear Regression部分出现了一些新的名词,这些名 ...
- Hibernate 的HQL,QBC 查询语言
1.HQL:(Hibernate Query Language) 是面向对象的查询语言 1.实体查询 public void testQueryAllDept(){ String hql=" ...
- Unity3D 粒子系统
我们先来看看Particle System在Inspector视窗中的属性: 1.Transform:可以控制粒子在世界或者本地坐标的改变.但是有点注意的是,如果你改变Scale属性值是不会影响粒子的 ...