视频相关知识
2022-10-31
| 2023-3-29
0  |  0 分钟
置顶
type
status
slug
summary
tags
category
icon
password
URL
date
 
    • 一幅静止画面,一段视频由很多连续的帧形成。
  • 帧率
    • 每秒播放了多少帧画面,越大视频越流畅,单位赫兹Hz
  • 分辨率
    • 平面内像素的数量。例如:1080p=1920*1080;2k=2560*1440;4k=4096*2160
  • 码率
    • 视频文件在单位时间内的数据流量,简单来说就是每秒传输的比特数,单位kbps。码率越大说明有压缩比越小,画面越清晰,相应的对带宽的要求高。
      (视频编码率/8+音频编码率/8)*时长(秒)=文件大小
      1、码率和质量成正比,但是文件体积也和码率成正比。
      2、码率超过一定数值,对图像的质量没有多大影响。
  • 转码
    • 将视频由转化为其他编码格式,以适应不同的需求(终端、带宽等)。是一个解码➡️编码的过程。
  • 编码格式、封装格式
    • 一个视频由视频文件和音频文件组成。视频和音频各有自己的编码格式。为了让视频和音频(包括字幕等等)相互对应,需要一个容器将他们包装起来,就是封装格式。
      常见的视频编码格式有:MMPEG4、H265(H.265/HEVC)、H264(H.264/AVC)等
      常见的音频编码格式有:MP3、AAC、WAV等
      常见的封装格式有:MP4(MPEG4)、FLV(flash video)、AVI、MOV、RMVB等
      封装格式和编码格式的对应如下表:
      封装格式对应的编码格式
      封装格式
      编码格式。
      H265、H264 、MPEG4
      MPEG2、AC1、H264、DIVX、XVID
      MPEG2、H264、XVID
      H264
      MEEG2、H264
      所有的编码格式
  • 软解、硬解
    • 例如MP4格式的视频要播放,需要转换成图像和声音,软解就是通过软件让CPU完成转化。硬解是在不依赖CPU(例如使用GPU)的情况下完成转化。
  • 各个参数
    • ABR - 自适应比特率
      dts - 编码时间戳,flv格式中体现在tag数据包的两个时间戳组合而成,代表解码时间
      pts - 相对于dts的时间偏移量,代表显示时间。会影响音画同步
      GOP - 两个I帧之间的间隔
  • ffmpeg 一个快速的音视频转化操作工具。
    • i: 后加文件路径
    • r:制定帧率
    • re:以本地帧频读数据,主要用于模拟捕获设备
    • stream__loop 循环次数 -1 无限
    • vcodec 视频编码。后跟编码格式
    • acodec 音频编码。后跟编码格式
    • f [xxx] 使用xxx封装格式
    •  
      ffmepg -re -stream__loop -1 -i “视频地址” -vcodec copy -acodec copy -f flv "推流地址"
      ffplay -i "视频地址" 可以播放视频
      ffprobe -i "视频地址" 可以查看视频详细信息
       
  • 流(stream)
    • 数据在网络上按时间先后次序传输和播放的连续音/视频数据流。之所以可以按照顺序传输和播放连续是因为在类似 RTMP、FLV 协议中,每一个音视频数据都被封装成了包含时间戳信息头的数据包。而当播放器拿到这些数据包解包的时候能够根据时间戳信息把这些音视频数据和之前到达的音视频数据连续起来播放。MP4、MKV 等等类似这种封装,必须拿到完整的音视频文件才能播放,因为里面的单个音视频数据块不带有时间戳信息,播放器不能将这些没有时间戳信息数据块连续起来,所以就不能实时的解码播放。
       
       
  • 工作
  • 视频
  • ffmpeg 使用Python解释器
    目录