08 2013 档案

摘要:直接上代码// demo.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeextern "C"{#include "../../common/common.h"#include "../../common/cpu.h""#include "../../x264.h"#include "../../encoder/set.h"}#include "librtmp/rtmp_sys.h"#includ 阅读全文
posted @ 2013-08-28 00:22 遥望星空 阅读(1198) 评论(0) 推荐(0) 编辑
摘要:本来是应该先写一个媒体文件格式的简单讲解的,还没来得及写,以后再写。今天就先根据ffmpeg的flv.c的flv_demux这个结构体来讲解一下当前比较流行的媒体格式flv.FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能.当前主流的媒体网站像国内的优酷、国外youtube其标清格式的文件均采用flv的格式。FLV文件结构解析FLV是一个二进制文件,其文件格式如下图 ,由文件头(FLV header)和很多tag组成。tag又可以分成三类:audio,video,script 阅读全文
posted @ 2013-08-28 00:21 遥望星空 阅读(507) 评论(0) 推荐(0) 编辑
摘要:Adobe公司太坑人了,官方文档公布的信息根本就不全,如果只按照他上面的写的话,是没法用的。按照文档上面的流程,server和client连接之后首先要进行握手,握手成功之后进行一些交互,其实就是交互一些信息以确认大家都是用的同一个协议,交互成功之后就开始传数据了。首先说下rtmp协议包的格式。握手之后,rtmp传输一个数据默认的长度是128bytes,这128bytes不包括包头的长度,只是数据的长度,文档上面没有说明,很憋了我一段时间,数据超过这个长度之后就要分块,超过128bytes的数据放到下一个块中,以此类推。块大小是可配置的,最大块是65535字节,最小块是128字节。块越大CPU 阅读全文
posted @ 2013-08-28 00:20 遥望星空 阅读(7270) 评论(0) 推荐(0) 编辑
摘要:计算 AVCDecoderConfigurationRecord得到 CodecPrivateData 数据(只有第一帧需要);计算 NALUs 得到帧数据。计算 AVCDecoderConfigurationRecord得到 CodecPrivateData 数据H.264 视频流的 CodecPrivateData 实际上就是 AVCDecoderConfigurationRecord 中 SequenceParameterSets(SPS)和 PictureParameterSets(PPS)使用 byte[] {00, 00, 01} 连接的字节数组。注意!FLV 文件中第一个 VID 阅读全文
posted @ 2013-08-28 00:18 遥望星空 阅读(1000) 评论(0) 推荐(0) 编辑
摘要:这段时间,工作上的需要,在RTMP上做了flv流到标准h264、AAC的转换,服务器是开源项目CRTMPSERVER,客户端flex编写,视频编码h264,音频编码AAC,现将一些协议相关的东西记录如下。一、分析FLV数据我们先拿一个flv文件来简单分析一下flv数据的格式flv标准文档下载地址http://www.cnblogs.com/chef/archive/2012/07/18/2597003.htmlflv文件分析器flvprase下载地址http://www.cnblogs.com/chef/archive/2012/07/18/2596930.html本文重点不在于此,这块就跳过 阅读全文
posted @ 2013-08-28 00:17 遥望星空 阅读(944) 评论(0) 推荐(0) 编辑
摘要:一个完整的多媒体文件是由音频和视频2部分组成的。H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式。字幕文件只是其中附带部分。把视频编码和音频编码打包成一个完整的多媒体文件,可以有不同的方式,这种方式便是所谓的封装方式, 不同的封装方式有不同的后缀。由于有些封装方式具有很强的灵活性,它可以把各种不同的音视频文件打包成一个文件,因此会出现这么一种情况,虽然文件的后缀 是相同的,但有些可以正常播放,而有些不能播放,毕竟任何一种播放软件都不是万能的。部分先进的封装方式还可以同时封装多个音频编码文件,甚至同时封装进 字幕文件,如MKV封装方式。MKV文件可以做到一个文件包括多种语种 阅读全文
posted @ 2013-08-28 00:16 遥望星空 阅读(4764) 评论(1) 推荐(1) 编辑
摘要:ffmpeg 可以通过IO操作将数据读取和存储在文件或网络中 作为数据的读取和写入地址,数据被存放在file,http,ffmpeg 不仅可以编解常用的音视频格式,还可以将数据导入/导出到各种媒介中。 当进行数据压缩时,流媒体数据可以从文件中获取,也可以借助各种专用网络协议从网络中获取。 当进行数据解压时,数据可以存放在文件中,也可以通过网路协议发送到远端。在ffmpeg中针对不同媒介的数据操作方法被抽象为url_xxx,并记录在结构体 URLProtocol 中。 以文件操作为例:/libavformat/file.c URLProtocol ff_file_protocol = { .n. 阅读全文
posted @ 2013-08-27 20:21 遥望星空 阅读(2185) 评论(0) 推荐(0) 编辑
摘要:RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等。RTMP协议可用于实现直播、点播应用,通过FMLE(Flash Media Live Encoder)推送音视频数据至RtmpServer,可实现摄像头实时直播。不过,毕竟FMLE应用范围有限,想要把它嵌入到自己的程序中,还是要自己来实现RTMP协议的推送。本人实现了一个RTMPLiveEncoder, 阅读全文
posted @ 2013-08-27 17:52 遥望星空 阅读(1140) 评论(0) 推荐(0) 编辑
摘要:0. 前言 我在前两篇文章中写了DirectShow捕获音视频然后生成avi,再进行264编码的方法。那种方法有一些局限性,不适合实时性质的应用,如:视频会议、视频聊天、视频监控等。本文所使用的技术,适用于这种实时性的应用,通过处理采集出来的音视频的每一帧,实现实时编码,实时输出。这是我做直播系列应用的一部分,目前的情况是输入端采用DirectShow技术捕获音视频,然后对视频进行h.264编码,对音频进行aac编码,输出端则是生成文件,接下来还要进一步扩展输入端和输出端,以支持文件、桌面输入,RTSP、RTMP、HTTP等流式协议输出。1. 简单介绍 首先是捕获,这里采用了DirectS.. 阅读全文
posted @ 2013-08-27 17:48 遥望星空 阅读(919) 评论(0) 推荐(0) 编辑
摘要:ffmpeg.exe -i F:\闪客之家\闪客之歌.mp3 -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\11.flvffmpeg -i F:\01.wmv -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\test.flv使用-ss参数 作用(time_off set the start time offset),可以从指定时间点开始转换任务。如:转换文件格式的同时抓缩微图:ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 阅读全文
posted @ 2013-08-23 13:10 遥望星空 阅读(651) 评论(0) 推荐(0) 编辑
摘要:Configuration file配置文件The configuration file is actually a lua script which must contain an object calledconfiguration.This will be read by the server and used to fully configure the server. Besides this object calledconfigurationyou can have functions, include other lua libraries, etc. In the end, 阅读全文
posted @ 2013-08-23 11:44 遥望星空 阅读(3889) 评论(0) 推荐(0) 编辑
摘要:ffmpeg的调用命令如下:ffmpeg -re -i xxx.mp4 -vcodec copy -acodec copy -f rtsp rtsp://127.0.0.1/live/mystream用ffmpeg做输入测试ffmpeg -re -i "E:\片源\复仇者联盟720p.mov" -vcodec copy -acodec copy -f flv rtmp://192.168.11.75/live/test1ffmpeg -re -i "E:\片源\复仇者联盟720p.mov" -vcodec copy -acodec copy -f flv 阅读全文
posted @ 2013-08-23 10:53 遥望星空 阅读(7224) 评论(0) 推荐(1) 编辑
摘要:Make sure that you have administrative privileges before doing the following steps.​1. 下载并安装(Microsoft Visual C++ 2008 Redistributable Package)链接:http://www.microsoft.com/en-us/download/details.aspx?id=29下载并安装Download and install “Visual C++ 2008 Redistributables”2. 下载并安装OpenSSL链接:http://slproweb.co 阅读全文
posted @ 2013-08-23 09:41 遥望星空 阅读(3195) 评论(0) 推荐(0) 编辑
摘要:今天mysql突然出现以下错误:mysql> select * from test;ERROR 1034 (HY000): Incorrect key file for table ‘test’; try to repair it首先通过repair table修复:mysql> repair table test;+—————+——–+———-+———————————————————+| Table | Op | Msg_type | Msg_text |+—————+——–+———-+———————————————————+| test.test | repair | Erro 阅读全文
posted @ 2013-08-19 08:56 遥望星空 阅读(34314) 评论(0) 推荐(1) 编辑
摘要:废话不多说,首先查看下一个简单的sln文件结构MicrosoftVisualStudioSolutionFile,FormatVersion11.00#VisualStudio2010Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}")="ConsoleApplication1","ConsoleApplication1\ConsoleApplication1.csproj","{CD680A35-B1DB-4A3D-9073-2A604600D396}"EndProj 阅读全文
posted @ 2013-08-15 10:31 遥望星空 阅读(2599) 评论(0) 推荐(0) 编辑
摘要:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Net;using System.Diagnostics;namespace WindowsApplication1{ public partial class Form1 : Form { public Form1() ... 阅读全文
posted @ 2013-08-13 10:33 遥望星空 阅读(3907) 评论(0) 推荐(0) 编辑
摘要:首先查找到占用80端口的进程号PID是多少 CMD>netstat -ano | findstr 80 这个命令输出的最后一列表示占用80端口的进程号,假设为1,kill掉这个进程 CMD>taskkill /F /PID 1 这样80端口就是释放了。 阅读全文
posted @ 2013-08-12 09:26 遥望星空 阅读(540) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示