the_69 2019-07-07 10:20 采纳率: 75%
浏览 529
已采纳

做一个视频网站需要注意的问题。

目前前端半吊子 想学习做一个视频网站 学习的方向在哪里 从哪里开始着手

  • 写回答

3条回答 默认 最新

  • dabocaiqq 2019-07-07 12:23
    关注

    视音频基础知识——视音频解码——视音频编码——视音频转码——视音频播放——具体应用——其他高阶内容
    1、视频、图像、音频的格式。这里的“格式”是一个广义的概念,既包括MP4,FLV这样的封装格式,也包括H264,MPEG2这样的编码格式,还包括420 422 444这样的取样格式,甚至RGB,HSV,YUV这样的彩色空间也可以算作一种格式,将来在应用时还可能会遇到RTMP,HLS这样的流媒体传输协议或者其他的协议,都可以算作格式。这些纷繁复杂的格式就好比学英语时要背的单词,初学的时候可能觉得看不见摸不着,将来落实到代码上却是一目了然的,但是这个“背单词”的过程一定不能省。在一些论坛里经常能看到很多写代码的高手受困于不懂这些基本的概念,大概就是基础没打好。
    2、信息论以及压缩编码入门。在你学习前面的各种格式时不可避免地会涉及到一些压缩编码的知识,随便拿一本讲视频编码的书,前面的绪论也都会简单讲讲信息论知识。简单来说,你需要知道视音频为什么要压缩编码,为什么可以实现压缩编码,怎样评价压缩编码的质量,以及具体编码过程中的一些概念,比如型(profile)和级(level),GOP,IPB帧,NAL单元,宏块,运动矢量、量化参数,帧内编码(当然你首先要知道帧率、场频这类的概念),帧间预测,这一大堆的概念,在不同的编码标准中还会有各种专属的概念。觉得前途黑暗想要放弃吗?不要怕,下面我会给你推荐一些参考书,看上一两本就差不多入门了。
    如果说前面的各种格式相当于英语中的单词的话,这部分很显然就是语法了。
    3、其他。相信你已经感觉到了,视音频基础知识确实是非常杂的,除了前面提到的“单词”和“语法”之外,还会有“视音频质量评价”这样的概念,我也不知道要怎么归类,差不多可以算是应用吧。说到视音频技术的应用,流媒体应用是很大的一块,那么这其中又涉及到很多的计算机网络知识。再比如高阶应用中的“硬件加速”,就又涉及到更多高端内容了。这些东西在你以后的工作中慢慢积累就好,还是那句话,不要怕。
    4、参考书目。ITU\ISO\IEC的各种标准,虽然一般人都看不下去,但越到后来就越发现这些标准才是最靠谱的;高教出版社《电视原理》;人民邮电出版社《数字电视广播原理与应用》《新一代视频压缩编码标准》《C++ Primer》;清华大学出版社《Visual C++音频\视频技术开发与实战》
    视音频播放:
    播放又是另外一大块内容了,就拿其中最简单的“视音频该如何同步”的问题,就绝对能难倒一大堆业内人士。除此之外,如何给视频加上一些“特效”“滤镜”这样的内容也可以算作是视音频播放方面需要研究的内容。同样也有很多开源闭源项目供我们学习,比如ffdshow,DirectShow,ffmpeg中的avfilter部分等,这一部分我也是新手,等我深入研究后再回来补充这一块。

    具体应用:
    就如我前面所说,视音频技术应用的一大块就是流媒体应用。
    1、流媒体传输协议:现在业界应用比较广泛的是rtmp和hls。我研究比较多的是rtmp,但其实这个由adobe推出的协议很蛋疼,adobe官方给的文档很模糊,基本上只有librtmp这个开源项目可供应用,还不是和官方文档完全对应的。好吧我说的有点夸张,同学你将来不要放弃研究rtmp。
    2、流媒体服务器:流媒体应用作为典型的客户\服务器模式应用,除了要知道怎样在客户端收流、推流之外,有时候还需要研究一下服务器端的技术。FMS,red5,live555,crtmpserver等开源闭源服务器项目都是值得研究的内容。
    3、流媒体应用现在很火,但是各家公司在带宽、存储上耗费的成本都很高,如何进行服务优化也是研究热点。

    其他高阶内容:
    硬件加速、码率控制、QoE优化、包括HEVC在内的各类最新最奇葩编码方法等,都是你在编解码生涯里需要一直关注的问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现