多媒体学习小记

Posted on Mon 31 October 2016 in Multimedia

起因

实验室最近想要对视频站点的重编码和重采样进行逆向分析,保证水印信息能够在这个过程中存活。本来我觉得这是一个很容易的工作, 毕竟我们有ffprobe可以直接用,感觉ffprobe再diff一下就可以了。然而问题在于,之前虽然上过流媒体课,也折腾过nginx-rtmp-module, 但是对于视频流的很多更细节的实现,所以借着这个机会,想更深入地对多媒体的编码存储进行一下更深入 地学习。

概念

Aspect Ratio

在ffprobe的输出里一般会看到display_aspect_ratio和sample_aspect_ratio,而且数字上比较奇怪。

这里有一个浅显简单的解释,简单说来就是:

$$ Frame Aspect Ratio = Storage Aspect Ratio $$
$$ Sample Aspect Ratio = Pixel Aspect Ratio $$

画面上实际显示的高宽比是Display Aspect Ratio,计算公式如下:

$$ Display Aspect Ratio = Frame Aspect Ratio \times Sample Aspect Ratio $$

tbr tbn tbc …


Continue reading

用nginx-rtmp-module直播写代码

Posted on Fri 28 October 2016 in Multimedia

前言

前段时间用nginx-rtmp-module搭了一个直播系统,测试的时候用来直播了一下桌面,感觉评价还不错,应邀写个简单的教程。

服务器

安装

服务器端我用的是nginx-rtmp-module,操作系统用的是CentOS 7,部署其实很简单, 它主页上就有教程

当然为了系统比较干净,推荐还是简单打个包,CentOS的话我推荐从nginx的官方源下载 源码包,在configure的参数上加一条--add-module=/path/to/nginx-rtmp-module即可。

如果是archlinux的话可以考虑用aur的里的包

基本配置

nginx的基本配置可以参考如下:

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

rtmp …

Continue reading