超越之视频技术的核心要点总结
1.视频生产
1)视频的上传和存储
2)视频转码
3)内容的审核监控
2.视频消费
1)播放器和弹幕
2)CDN和带宽
3)防盗链
术语
解码(Decoding) 点播、回放(Playback) 源⽂件 -> Decoding -> 播放
编码(Encoding) 直播(Streaming) -> 录像(Video) 直播流 -> Encoding -> 视频录像
转码(Transcoding) 特效加⼯处理
文件格式转换
源文件 -> Decoding -> 加工 ->
Encoding -> 目标文件
前提:网络基建带宽充
#做一个视频网站需要什么样配置的服务器?
问题描述:我准备建一个视频网站,假设每天在线人数100左右,同时在10人左右,平均每人最少观看10分钟,而视频清晰度480P徘徊。要满足以上需求的话,我需要一台什么配置的服务器,预算是多少?
做一个视频网站需要什么样配置的服务器?
答:流媒体服务器(视频服务器)的特点是长时间高并发,因此cpu至少至强六核E5-2420、内存8G以上。操作系统可以选择winodws也可以选Linux,个人推荐centos5.6+nginx。你可以采用http+flv的播放方案,当然你想支持手机端,建议采用http live streaming或者http+mp4。
1.480P的视频视频码率可以采用4.5Mbps;
2.每天在线100人,同时在线10人左右;要想保持看视频不卡,视频的比特率至少300Kbps,十人同时在线播放的话,0.3*10=3Mbps的带宽可以达到完全流畅播放。当然如果你的服务用户是在国内,无法精确到单独省、市,建议选择BGP多线机房。
3.网站的图片、视频加防盗链功能。否则扩容至10M带宽也不够用。
4.硬盘大小,因为视频网站,数据最好放在自己硬盘,且视频比较大建议采用1T。如果考虑数据的安全可以采用raid1。
推荐视频网站配置
CPU:至强六核E5-2420
内存:8G DDR3 ECC
主板:ASUS Z9NA D6
带宽:3M
价格:11999元/年 点击右侧QQ有专家为您搭配更适合您的服务器
APP后端处理视频的方案
后台常见的视频处理有以下几种:
视频的截图,很多视频列表上显示的一张图片,这张图片就是通过截取视频的某一帧(通常是第一帧)得到的。
视频加水印,出于版权保护的目的,需要添加水印。
视频转码,允许用户上传手机上的视频,并转换为app后端支持的格式。
视频的处理对于大多数程序员来说是个很陌生的领域, 这里介绍一个视频处理最常用的工具:ffmpeg。
Ffmpeg的官网(http://ffmpeg.org/)是这样介绍的:Acomplete, cross-platform solution to record, convert and stream audio and video。一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
Ffmpeg是个跨平台的软件,可以在linux下使用,也可以在window,mac下使用。
著名的播放器KMPlayer, 暴风影音,qq影音,都曾经使用过ffmpeg的代码。国内的七牛云存储,音视频处理的核心模块也是ffmpeg。
Ffmpeg可以实现的功能有:
*视频采集
*音视频格式转换
*视频抓图
*给视频加水印
FFmpeg主要由一下几个部分组成:
libavcodec:包含了所有FFmpeg音视频编解码器的库。 为了保证最优性能和高可复用性,大多数编解码器从头开发的。
libavformat:包含了所有的普通音视格式的解析器和 产生器的库。
三个实例程序:
ffmpeg:命令行的视频格式转换程序(一般就直接调用这个文件)
ffplay:视频播放程序。(需要SDL支持)
ffserver:多媒体服务器
程序调用ffmpeg的功能
使用ffmpeg的进行视频转换很简单,例如,把avi转换为MP4,使用命令行:
ffmpeg -i source.avi -f psp -r 29.97-b 768k -ar 24000 -ab
64k -s 320×240 destination.mp4
一个常见的思路,就用通过构造命令行的方式,把上面命令行构造出来,然后在后台语言中调用ffmpeg执行文件。
有个java调用ffmpeg开源项目 jave (主页:http://www.sauronsoftware.it/projects/jave/)就是这样实现的。
通过类AudioAttributes和VideoAttributes设置了相关的参数,在类Encoder中把这些参数构造成命令行执行FFmpeg相关的命令。
File source = newFile("source.avi");
File target = newFile("target.flv");
AudioAttributes audio = newAudioAttributes();
audio.setCodec("libmp3lame");
audio.setBitRate(newInteger(64000));
audio.setChannels(new Integer(1));
audio.setSamplingRate(newInteger(22050));
VideoAttributes video = newVideoAttributes();
video.setCodec("flv");
video.setBitRate(newInteger(160000));
video.setFrameRate(new Integer(15));
video.setSize(new VideoSize(400,300));
EncodingAttributes attrs = newEncodingAttributes();
attrs.setFormat("flv");
attrs.setAudioAttributes(audio);
attrs.setVideoAttributes(video);
Encoder encoder = new Encoder();
encoder.encode(source,target, attrs);
注意了,视频音频相关的操作一般都是非常耗费CPU资源,例如上面的例子,在avi转换成flv的过程中,系统的相关资源状况如下:
在压缩视频时,ffmpeg就占用了CPU差不多90%的资源。
端要快速地处理视频,需要高性能的服务器集群,但是,对于创业型公司来说,这点支出是非常不合算的。因此,可充分运用云服务,例如,七牛提供的服务就包含音视频格式的转换,调用非常方便。
超越之视频技术的核心要点总结相关推荐
- React+Redux技术栈核心要点解析(中篇)
感谢作者郭永峰的授权发布. 作者:郭永峰,前端架构师,现用友网络 FED团队负责人,目前主要负责企业级应用前端技术平台建设工作,在前端工程化实现.Node 应用开发.React技术.移动开发等方向有丰 ...
- React+Redux技术栈核心要点解析(上篇)
感谢作者郭永峰的授权发布. 作者:郭永峰,前端架构师,现用友网络 FED团队负责人,目前主要负责企业级应用前端技术平台建设工作,在前端工程化实现.Node 应用开发.React技术.移动开发等方向有丰 ...
- React+Redux技术栈核心要点解析(下篇)
感谢作者郭永峰的授权发布. 作者:郭永峰,前端架构师,现用友网络 FED团队负责人,目前主要负责企业级应用前端技术平台建设工作,在前端工程化实现.Node 应用开发.React技术.移动开发等方向有丰 ...
- “小程序+直播”怎样搅动音视频技术生态?
责编 / 王宇豪 策划 / LiveVideoStack 12月26日晚间,微信小程序开放了直播能力,并首先向社交.教育.医疗.政务民生.金融等五大应用场景开放.与原生App应用和基于浏览器的H5 ...
- 【免费活动】解析腾讯云音视频通信三大核心网络技术实战与创新
随着互联网的发展越来越成熟,移动终端成为我们人手必备的生活用品,云计算的普及与高速发展,4G.5G网络的瓜熟蒂落,我们真正的进入了全真互联网时代.2020年,一场突如其来的疫情,很多传统行业不得不将线 ...
- 解析腾讯云音视频通信三大核心网络技术实战与创新
随着互联网的发展越来越成熟,移动终端成为我们人手必备的生活用品,云计算的普及与高速发展,4G.5G网络的瓜熟蒂落,我们真正的进入了全真互联网时代.2020年,一场突如其来的疫情,很多传统行业不得不将线 ...
- 浅谈AI视频技术超分辨率
泛娱乐应用成为主流,社交与互动性强是共性,而具备这些特性的产品往往都集中在直播.短视频.图片分享社区等社交化娱乐产品,而在这些产品背后的黑科技持续成为关注重点,网易云信在网易MCtalk 泛娱乐创新峰 ...
- 音视频技术开发周刊 | 239
每周一期,纵览音视频技术领域的干货. 新闻投稿:contribute@livevideostack.com. 什么是体积视频? 本文介绍了体积视频(Volumetric Video)的解释,创建体积视 ...
- 音视频技术开发周刊:FFmpeg内置的一个无中生有的音视频输入数据 | 214
每周一期,纵览音视频技术领域的干货. 新闻投稿:contribute@livevideostack.com 火山引擎视频云:坚持基础技术创新,打造极致用户体验 从toC到toB,作为抖音背后的视频技术 ...
最新文章
- 吴恩达老师,被曝靠「教书」实现首个IPO上市,估值50亿美元
- 获取AD里面指定OU或Container里面的计算机以及Lastlogon时间格式转换
- 技术久了,偶尔放松下吧,看看这些小样,很美好!
- 2012计算机科学排名,2012年美国大学计算机科学专业研究生排名
- 转:GridView 模板列中的数据绑定
- 雨林木风win11 64位安全旗舰版镜像V2021.09
- ContOS网络连接及简单的ssh Xshell连接!
- 目前阶段的任务及计划
- Java 8新特性探究(五)重复注解(repeating annotations)
- 四种方法实现两个等大数组之间内容交换
- python 穷举法 算24点(史上最简短代码)
- 背景建模算法比较与ViBe算法论文解读与python代码
- 如何使用阿里云打造离线下载服务器?
- python8皇后不攻击问题_Python 解决八皇后问题
- 同步,异步,直流电机原理
- Android 画闹钟
- 青岛小学 初中有计算机编程比赛,青岛市电脑制作活动 程序设计竞赛 一等奖...
- 解决OpenCV捕捉USB摄像头时抓帧失败的问题
- 算法题 子数组之和为零
- ubuntu 编译安装opencv官网教程