摘要:
Dockerfile参数使用 FROM: 指定基础镜像,所有构建的镜像都必须有一个基础镜像,并且 FROM 命令必须是 Dockerfile 的第一个命令 FROM <image> [AS <name>] 指定从一个镜像构建起一个新的镜像名字 FROM <image>[:<tag>] [AS <na 阅读全文
摘要:
1、为什么帧率足够了,拍摄出来的画面还是模糊的,有拖影? 拍摄出来的画面是模糊的,有拖影即画面动态模糊,主要是由于曝光时间过大造成的; t(曝光时间)x v(运动速度) < 1 pixel 2、什么是光圈 摄像机都可以手动调节镜头光圈。光圈越大,画面越亮。但光圈增大的同时,景深会缩小,对焦也越难。因 阅读全文
摘要:
BOM头是UTF-8来告诉编辑器:我是UTF8编码。它的编码是\xEF\xBB\xBF。 但是PHP在设计之初并没有考虑到BOM头的问题,所以在编解码的时候很容易出现问题,例如使用 json_decode,当解码的string有BOM头的时候,json_decode就解析失败,返回null。 如下两 阅读全文
摘要:
线程资源应该通过线程池提供,而不可在应用中自行显示的创建线程。这样一方面是线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。而线程池不允许使用Executors去创建,而要通过ThreadPoolExecutor方式,这一方面是由于jdk中Exe 阅读全文
摘要:
JSMpeg 项目地址:https://github.com/phoboslab/jsmpeg JSMpeg 是一种采用 JavaScript 解码音视频的技术,可用于视频直播或点播。要实现直播,还需要 websocket 实现一个实时传输流的服务。FFmpeg 支持很多直播流格式,但是不支持 we 阅读全文
摘要:
一、多线程代价 上下文切换的开销,当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据、程序指针等,然后载入另一个线程的本地数据、程序指针等,最后才开始执行。这种切换称为上下文切换(context switch)。CPU会在一个上下文中执行一个线程,然后切换到另外一个 阅读全文
摘要:
可见性 如果一个线程对共享变量值的修改,能够及时的被其他线程看到,叫做共享变量的可见性。 Java 虚拟机规范试图定义一种 Java 内存模型(JMM),来屏蔽掉各种硬件和操作系统的内存访问差异,让 Java 程序在各种平台上都能达到一致的内存访问效果。简单来说,由于 CPU 执行指令的速度是很快的 阅读全文
摘要:
YUV简介 一般来说,直接采集到的视频数据是RGB24的格式,RGB24一帧的大小size=width×heigth×3 Byte,RGB32的size=width×heigth×4 Byte。如果是I420(即YUV标准格式4:2:0)的数据量是size=width×heigth×1.5 Byte 阅读全文
摘要:
一个经过优化的RTMP-CDN网络端到端的延迟大概在2-3秒,延迟大一些要在5秒甚至10秒以上。从推流到播放,会引入延迟的环节有编码延迟、网络丢包和网络抖动、视频的分段传输、多媒体节点的relay、播放器的缓存等等。实际上除了网络丢包和网络抖动不太可控之外,其他的各个环节都有一定的优化方案,比如使用 阅读全文