diff --git a/market/1M带宽的服务器视频分辨率、帧率和码率应该怎么选.md b/market/1M带宽的服务器视频分辨率、帧率和码率应该怎么选.md index 3815ce3..5667d82 100644 --- a/market/1M带宽的服务器视频分辨率、帧率和码率应该怎么选.md +++ b/market/1M带宽的服务器视频分辨率、帧率和码率应该怎么选.md @@ -96,8 +96,23 @@ Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 1 * ps - Per second,每秒的缩写 +## 16:9推荐分辨率 + +For the default 16:9 aspect ratio, encode at these resolutions: + +* 7680p (8K): 7680x4320 +* 2160p (4K): 3840x2160 +* 1440p: 2560x1440 +* 1080p: 1920x1080 +* 720p: 1280x720 +* 480p: 854x480 +* 360p: 640x360 +* 240p: 426x240 + + ## 参考资料 -* [Bits and Bytes web.stanford.edu(斯坦福大学)](https://web.stanford.edu/class/cs101/bits-bytes.html) -* [YouTube recommended upload encoding settings](https://support.google.com/youtube/answer/1722171?hl=en#zippy=%2Cframe-rate) +* Bits and Bytes web.stanford.edu(斯坦福大学) +* YouTube recommended upload encoding settings +* Video resolution & aspect ratios diff --git a/market/CentOS_7如何创建loop设备读取iso磁盘镜像文件内容.md b/market/CentOS_7如何创建loop设备读取iso磁盘镜像文件内容.md new file mode 100644 index 0000000..e48c175 --- /dev/null +++ b/market/CentOS_7如何创建loop设备读取iso磁盘镜像文件内容.md @@ -0,0 +1,73 @@ + +# CentOS 7如何创建loop设备读取iso磁盘镜像文件内容? + + +## 创建loop device虚拟设备 + +假设你的iso磁盘镜像文件名为:test.iso + +``` +losetup -fP test.iso +``` + +如果没有,可以用下面命令创建一个1G大小的空文件: +``` +dd if=/dev/zero of=test.iso bs=1M count=1024 +``` + + +查看新创建的虚拟设备: + +``` +losetup -a +``` + + +## 挂载虚拟设备到指定目录 + +假设你的系统之前没有loop device,新创建的为/dev/loop0 + +``` +mkdir /mnt/test +mount -o loop /dev/loop0 /mnt/test +``` + +查看挂载结果: + +``` +df -Th +``` + + +## 进入iso磁盘 + +挂载成功后,就可以像普通目录一样进入iso文件内部了: + +``` +cd /mnt/test +ls -l +``` + + +## 卸载虚拟设备 + +``` +umount /mnt/test +``` + + +## 删除loop device虚拟设备 + +``` +losetup -d /dev/loop0 +``` + + +掌握了loop device虚拟设备的创建、挂载、卸载和删除, +就可以在linux中读取网上下载的iso磁盘镜像文件内容了, +如软件光盘、视频DVD文件等。 + + + +## 参考 +> https://www.thegeekdiary.com/how-to-create-virtual-block-device-loop-device-filesystem-in-linux/ diff --git a/market/CentOS_7如何安装Docker_Engine.md b/market/CentOS_7如何安装Docker_Engine.md new file mode 100644 index 0000000..a7849cd --- /dev/null +++ b/market/CentOS_7如何安装Docker_Engine.md @@ -0,0 +1,62 @@ + +# CentOS 7如何安装Docker Engine? + + +## 卸载老版本 + +如果之前有安装过的docker或者docker-engine(新版本名字为:docker-ce), +需要先卸载老版本: +``` +yum remove docker \ + docker-client \ + docker-client-latest \ + docker-common \ + docker-latest \ + docker-latest-logrotate \ + docker-logrotate \ + docker-engine +``` + + +## 配置yum的Docker仓库 + +``` +yum install -y yum-utils +yum-config-manager \ + --add-repo \ + https://download.docker.com/linux/centos/docker-ce.repo +``` + + +## 安装新版Docker Engine + +``` +yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin +``` + + +## 启动Docker + +启动Docker Engine并把它设置开机自动启动: +``` +systemctl start docker +systemctl enable docker +``` + + +## 卸载Docker + +如果某天不需要用它了,可以按下面步骤卸载Docker Engine: +``` +yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin +``` + +如果之前下载和使用过的Docker镜像、容器都不需要了,可以按下面步骤删除: +``` +rm -rf /var/lib/docker +rm -rf /var/lib/containerd +``` + + +## 参考 +> https://docs.docker.com/engine/install/centos/ diff --git a/market/CentOS_7如何用Docker安装开源git仓库管理软件Gogs.md b/market/CentOS_7如何用Docker安装开源git仓库管理软件Gogs.md new file mode 100644 index 0000000..20671a2 --- /dev/null +++ b/market/CentOS_7如何用Docker安装开源git仓库管理软件Gogs.md @@ -0,0 +1,115 @@ + +# CentOS 7如何用Docker安装开源git仓库管理软件Gogs? + + +## 安装MySql并配置好账号 + +先安装mariadb: +``` +docker pull mariadb/server +docker run -d --name maria -p 3306:3306 -eMARIADB_ROOT_PASSWORD=mypassword mariadb/server +``` + +再进入容器maria,创建gogs专用数据库: +``` +docker exec -it maria bash +mysql -uroot -pmypassword +mysql> create database gogs default charset=utf8; +mysql> grant all on gogs.* to 'gogs' identified by 'dbpassword'; +mysql> flush privileges; +``` + + +## 下载Gogs镜像 + +``` +docker pull gogs/gogs +``` + +如果你还没安装Docker,请先参考安装: +[CentOS 7如何安装Docker Engine?](./CentOS_7如何安装Docker_Engine.md) + + +## 创建本地Gogs目录 + +``` +mkdir -p /var/gogs +``` + + +## 创建Gogs容器 + +``` +docker run --name=gogs -p 10022:22 -p 10880:3000 -v /var/gogs:/data gogs/gogs +``` + +其中端口10022和10880可以自定义,前一个是基于ssh访问,后一个是基于http访问。 + + +## 启动Gogs容器 + +``` +docker start gogs +``` + + +## 配置Nginx以便外网访问 + +Nginx参考配置: +``` +server { + listen 80; + server_name 你的域名; + + location / { + proxy_pass http://localhost:10880; + } +} +``` + + +## 创建管理员账号 + +Gogs的规则是,第一个创建的账号就是管理员,Email不是必须的。 + +按上面步骤配置好Nginx之后,打开你配置的域名访问Gogs, +然后点击注册按钮并完成管理员账号创建。 + +第一次访问,会看到一个安装网页, +在安装网页必须填好正确的MySql数据库地址、账号和密码: +``` +数据库地址:172.17.0.1:3306 +数据库账号:gogs +数据库密码:dbpassword +``` + +其中数据库ip地址需要用```ifconfig```在服务器查看Docker虚拟网络的本机ip。 + +以后如果需要审核新的账号, +管理员账号登陆后进入:Admin > Users 就可以审核了。 + + +## 命令行创建账号 + +除了上述网页的方式管理账号,还可以在服务器里用命令来添加账号: +``` +su git +cd /home/git/gogs +./gogs admin create-user --name tmpuser --password tmppassword --admin --email email@example.com +``` + +上面示例假设你的Gogs是以git账号运行的,并且安装在/home/git/gogs目录, +它将创建一个用户名为**tmpuser**和密码为**tmppassword**的新用户。 + +以Docker方式运行的话, +上述命令应该在你的Docker容器里完成,进入到容器: +``` +docker exec -it gogs bash +``` + + +## 参考 + +* https://hub.docker.com/r/gogs/gogs +* https://gogs.io/docs +* https://gogs.io/docs/intro/faqs diff --git a/market/CentOS_7如何编译安装Nginx-RTMP直播插件.md b/market/CentOS_7如何编译安装Nginx-RTMP直播插件.md new file mode 100644 index 0000000..c4635a1 --- /dev/null +++ b/market/CentOS_7如何编译安装Nginx-RTMP直播插件.md @@ -0,0 +1,81 @@ + +# CentOS 7里如何编译安装Nginx-RTMP直播插件? + +## 安装依赖包 + +``` +yum -y install pcre pcre-devel openssl openssl-devel zlib zlib-devel unzip +``` + + +## 下载最新版nginx源码 + +``` +mkdir downloads/ +cd downloads/ +wget http://nginx.org/download/nginx-1.9.9.tar.gz +``` + + +## 下载Nginx-RTMP插件源码 + +``` +wget https://github.com/arut/nginx-rtmp-module/archive/master.zip -O rtmp.zip +``` + + +## 解压缩源码 + +``` +unzip rtmp.zip +tar -zxvf nginx-1.9.9.tar.gz +``` + + +## 配置Nginx + +``` +cd nginx-1.9.9/ +./configure --add-module=../nginx-rtmp-module-master/ --with-http_realip_module +``` + + +## 编译安装Nginx + +``` +make && make install +``` + +确认安装成功: +``` +/usr/local/nginx/sbin/nginx -v +``` + + +## 启动nginx + +``` +/usr/local/nginx/sbin/nginx +``` + +如果需要用systemctl来启动nginx, +请修改nginx的服务配置文件: +``` +cp /usr/lib/systemd/system/nginx.service /usr/lib/systemd/system/nginx_backup.service +vim /usr/lib/systemd/system/nginx.service +``` + +保存后reload配置: +``` +systemctl daemon-reload +``` + +再尝试用systemctl启动nginx服务: +``` +systemctl stop nginx +systemctl start nginx +``` + + +参考: +> https://www.vultr.com/docs/setup-nginx-rtmp-on-centos-7 diff --git a/market/CentOS_7如何配置证书连接ssh及禁用密码登陆.md b/market/CentOS_7如何配置证书连接ssh及禁用密码登陆.md new file mode 100644 index 0000000..d1859af --- /dev/null +++ b/market/CentOS_7如何配置证书连接ssh及禁用密码登陆.md @@ -0,0 +1,64 @@ + +# CentOS 7如何如何配置证书连接ssh及禁用密码登陆? + + +## ssh-keygen生成证书 + +``` +ssh-keygen -t rsa -b 4096 +``` + +连续回车使用默认值即可在~/.ssh/目录下生成两个证书文件: + +> id_rsa 私钥 + +> id_rsa.pub 公钥 + + +## 配置公钥 + +把公钥文件改名为authorized_keys: +``` +cd ~/.ssh/ +mv id_rsa.pub authorized_keys +``` + + +## 禁用密码登陆 + +修改/etc/ssh/sshd_config文件,找到```PasswordAuthentication yes```, +把其中的yes改为no后保存。 + +``` +vim /etc/ssh/sshd_config +``` + + +## 复制私钥到本地 + +把~/.ssh/id_rsa的内容复制到本地保存, +下面以保存路径~/.ssh/为例。 + + +## 重启sshd服务 + +在执行这个操作之前,请务必仔细确认修改正确,建议同时保持两个窗口连入服务器, +避免因为修改有误重启sshd服务后退出当前登陆就无法再次连进服务器。 + +``` +systemctl restart sshd +``` + + +## 在新命令行窗口登陆验证 + +保持修改配置的这个窗口连接状态不要退出, +在新的命令行窗口执行ssh远程登陆命令: + +``` +ssh -i ~/.ssh/id_rsa root@你的服务器ip +``` + + +## 参考 +> https://www.ssh.com/academy/ssh/keygen diff --git a/market/CentOS_8.5如何编译安装ffmpeg和openh264、fdk-aac.md b/market/CentOS_8.5如何编译安装ffmpeg和openh264、fdk-aac.md new file mode 100644 index 0000000..1d09a37 --- /dev/null +++ b/market/CentOS_8.5如何编译安装ffmpeg和openh264、fdk-aac.md @@ -0,0 +1,105 @@ + +# CentOS 8.5如何编译安装ffmpeg和openh264、fdk-aac? + +ffmpeg是一个非常棒的视频处理软件,它能在linux、macos和windows下运行。 + +下面简单记录下在CentOS 8.5系统里如何从源码编译安装ffmpeg以及它所需要的openh264和fdk-aac软件。 + + +## 1. 安装依赖库和fdk-aac +``` +dnf install gcc gcc-c++ git nasm +dnf install fdk-aac fdk-aac-devel freetype freetype-devel +``` + +CentOS 7 里安装fdk-aac参考: +``` +wget "http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm" +rpm -Uvh nux-dextop-release-0-5.el7.nux.noarch.rpm +yum -y install fdk-aac fdk-aac-devel freetype freetype-devel +``` + + +## 2. 下载openh264源码 +``` +git clone "https://github.com/cisco/openh264.git" +``` + +推荐用git下载安装,在openh264安装的过程中会用到git。 + + +## 3. 配置ffmpeg所需的openh264目录环境变量 +``` +export PKG_CONFIG_PATH=openh264源码保存路径 +``` + + +## 4. 编译并安装openh264 + +cd 进入openh264所在目录 +``` +make +make install +``` + +安装好之后,记得创建软连接: +``` +ln -s /usr/local/lib/libopenh264.so.2.3.0 /usr/lib/libopenh264.so.7 +``` + +具体版本号请查看你安装的openh264。 + + +## 5. 下载ffmpeg源码 +``` +wget "https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2" +tar -jxvf ffmpeg-snapshot.tar.bz2 +``` + +如果tar无法解压,先安装bzip2: +``` +dnf install bzip2 +``` + + +## 6. 配置ffmpeg + +解压源码后进入源码目录执行: +``` +./configure --enable-libopenh264 --enable-libfdk-aac --enable-libfreetype --disable-x86asm +``` + + +## 7. 编译并安装ffmpeg + +在ffmpeg目录下执行: +``` +make +make install +``` + + +## 8. 测试ffmpeg + +``` +ffmpeg -version +``` + + + +## 补充说明 + +如果你有安装了x264和x264-devel库, +需要先删除它们,否则ffmpeg执行的时候会报错: +> ffmpeg: error while loading shared libraries: libopenh264.so.7: cannot open shared object file: No such file or directory + +删除x264和x264-devel库: +``` +dnf remove x264 x264-devel +``` + +如果在CentOS 7.9中编译安装好之后,出现上述错误,需要安装x264和x264-libs库: +``` +yum -y install x264 x264-libs +``` + diff --git a/market/README.md b/market/README.md index e6c7e86..1b78620 100644 --- a/market/README.md +++ b/market/README.md @@ -5,9 +5,17 @@ ## 视频行业市场分析 * [全中国网民每天消费的短视频内容所需的带宽成本是多少?](./全中国网民每天消费的短视频内容所需的带宽成本是多少.md) +* [网友们都喜欢看哪些类型的电影?](./网友们都喜欢看哪些类型的电影.md) +* [网友们都喜欢看哪些类型的短视频?](./网友们都喜欢看哪些类型的短视频.md) ## 视频网站技术相关 * [1M带宽的服务器视频分辨率、帧率和码率应该怎么选?](./1M带宽的服务器视频分辨率、帧率和码率应该怎么选.md) +* [CentOS 7如何配置证书连接ssh及禁用密码登陆?](./CentOS_7如何配置证书连接ssh及禁用密码登陆.md) +* [CentOS 8.5如何编译安装ffmpeg和openh264、fdk-aac?](./CentOS_8.5如何编译安装ffmpeg和openh264、fdk-aac.md) +* [CentOS 7如何编译安装Nginx-RTMP直播插件?](./CentOS_7如何编译安装Nginx-RTMP直播插件.md) +* [CentOS 7如何安装Docker Engine?](./CentOS_7如何安装Docker_Engine.md) +* [CentOS 7如何用Docker安装开源git仓库管理软件Gogs?](./CentOS_7如何用Docker安装开源git仓库管理软件Gogs.md) +* [CentOS 7如何创建loop设备读取iso磁盘镜像文件内容?](./CentOS_7如何创建loop设备读取iso磁盘镜像文件内容.md ) * 运营一个视频网站网络流量+服务器成本估算 diff --git a/market/全中国网民每天消费的短视频内容所需的带宽成本是多少.md b/market/全中国网民每天消费的短视频内容所需的带宽成本是多少.md index c145915..f66463b 100644 --- a/market/全中国网民每天消费的短视频内容所需的带宽成本是多少.md +++ b/market/全中国网民每天消费的短视频内容所需的带宽成本是多少.md @@ -110,7 +110,7 @@ ## 名词解释 * 帧率 - Frame Rate,每一秒播放的画面数量 -* 码率 - BitRate,每一秒播放的画面的数据大小 +* 码率 - BitRate,每一秒播放的画面的数据大小,单位是位(Bits) * CDN - Content Delivery Network,即内容分发网络 * 活跃用户 - 当天/当月有使用APP/网站的人 * DAU - 日活跃用户数量 diff --git a/market/网友们都喜欢看哪些类型的电影.md b/market/网友们都喜欢看哪些类型的电影.md new file mode 100644 index 0000000..b2099bb --- /dev/null +++ b/market/网友们都喜欢看哪些类型的电影.md @@ -0,0 +1,4 @@ + +# 网友们都喜欢看哪些类型的电影 + +待补充 diff --git a/market/网友们都喜欢看哪些类型的短视频.md b/market/网友们都喜欢看哪些类型的短视频.md new file mode 100644 index 0000000..1dfda63 --- /dev/null +++ b/market/网友们都喜欢看哪些类型的短视频.md @@ -0,0 +1,4 @@ + +# 网友们都喜欢看哪些类型的短视频 + +待补充 diff --git a/market/视频搬运还有的做吗.md b/market/视频搬运还有的做吗.md new file mode 100644 index 0000000..39160d3 --- /dev/null +++ b/market/视频搬运还有的做吗.md @@ -0,0 +1,11 @@ + +# 视频搬运还有的做吗? + + +## 行业现状 + + +## 遇到的问题 + + +## 机会在哪里