go语言ffmpeg推流 go语言流媒体开发

ffmpeg-php如何在windows apache下进行配置ffmpeg-php我之前也是一直没配置成功 , 后来干脆直接用ffmpeg , 用php(我后来是用的go语言)执行它,这样就不用配置了,另外如果想找编程方面的视频教程可以去 v8视频 看看
FFmpeg音视频的基础名词解释 是指视频文件在单位时间内使用的数据流量,也叫码率或码流率 , 通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是kb/s或者Mb/s 。一般来说同样分辨率下,视频文件的码流越大,压缩比就越?。嬷柿烤驮礁?。码流越大,说明单位时间内取样率越大,数据流 , 精度就越高,处理出来的文件就越接近原始文件,图像质量越好,画质越清晰,要求播放设备的解码能力也越高 。
当然,码流越大,文件体积也越大,其计算公式是文件体积=时间X码率/8 。例如,网络上常见的一部90分钟1Mbps码流的720P RMVB文件,其体积就=5400秒×1Mb/8=675MB 。通常来说,一个视频文件包括了画面及声音,例如一个RMVB的视频文件 , 里面包含了视频信息和音频信息,音频及视频都有各自不同的采样方式和比特率,也就是说,同一个视频文件音频和视频的比特率并不是一样的 。而我们所说的一个视频文件码流率大小,一般是指视频文件中音频及视频信息码流率的总和 。以以国内最流行,大家最熟悉的RMVB视频文件为例,RMVB中的VB,指的是VBR,即Variable Bit Rate的缩写 , 中文含义是可变比特率,它表示RMVB采用的是动态编码的方式,把较高的采样率用于复杂的动态画面(歌舞、飞车、战争、动作等),而把较低的采样率用于静态画面,合理利用资源 , 达到画质与体积可兼得的效果 。
我的理解码流就是视频/音频文件的每秒的大小 , 码率越高文件越大,呈现出来的失帧也就越低
【go语言ffmpeg推流 go语言流媒体开发】 采样率(也称为采样速度或者采样频率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用 赫兹 (Hz)来表示 。采样率是指将模拟信号转换成数字信号时的采样频率,也就是单位时间内采样多少点 。一个采样点数据有多少个比特 。比特率是指每秒传送的比特(bit)数 。单位为 bps(Bit Per Second),比特率越高,传送的数据越大 , 音质越好.比特率 =采样率 x 采用位数 x声道数.
采样率类似于动态影像的帧数,比如电影的采样率是24赫兹,PAL制式的采样率是25赫兹,NTSC制式的采样率是30赫兹 。当我们把采样到的一个个静止画面再以采样率同样的速度回放时,看到的就是连续的画面 。同样的道理,把以44.1kHZ采样率记录的CD以同样的速率播放时,就能听到连续的声音 。显然,这个采样率越高,听到的声音和看到的图像就越连贯 。当然,人的听觉和视觉器官能分辨的采样率是有限的,基本上高于44.1kHZ采样的声音 , 绝大部分人已经觉察不到其中的分别了 。而声音的位数就相当于画面的颜色数 , 表示每个取样的数据量,当然数据量越大,回放的声音越准确,不至于把开水壶的叫声和火车的鸣笛混淆 。同样的道理 , 对于画面来说就是更清晰和准确,不至于把血和西红柿酱混淆 。不过受人的器官的机能限制,16位的声音和24位的画面基本已经是普通人类的极限了,更高位数就只能靠仪器才能分辨出来了 。比如电话就是3kHZ取样的7位声音,而CD是44.1kHZ取样的16位声音,所以CD就比电话更清楚 。
我的理解采样率就是每秒采集音视频的点 , 比如我们通常说的8k 16k与44100

推荐阅读