
视频技术基础
视频编解码等
WX Chen
实用技术总结,前沿科技分享,欢迎交流技术和业务
展开
-
视频技术基础
目前比较主流的视频格式有下面这几种:avi,rmvb,mp4,flv,mkv等等。这里面作为的视频格式实际上是指视频的封装格式,指的是以什么方式把视频和音频数据打包成一个文件。注:有些封装格式支持的视音频编码标准十分广泛,应该算比较优秀的封装格式,比如MKV;而有些封装格式支持的视音频编码标准很少,应该属于落后的封装格式,比如RMVB。封装格式:| 格式 | 推出机构 | 流媒体 |支持的视频编码|支持音频编码格式|应用领域||MP4|MPEG|支持|MPEG-2、MPEG-4、H.264|AA原创 2021-12-13 16:21:00 · 7461 阅读 · 0 评论 -
视频质量感知评价指标
均方差(MSE)、峰值信噪比(PSNR)和结构相似性指数(SSIM)是最初为图像设计的测度指标的例子,后来扩展到视频。Multiscale FastSSIM和PSNR-HVShttps://blog.youkuaiyun.com/vn9PLgZvnPs1522s82g/article/details/79145145全参考客观视频质量评价方法:均方误差MSE和峰值信噪比PSNR失真视频相对于原始视频的相似程度或保真程度。基于结构失真的SSIM评估方法http://www.voidcn.com/arti原创 2021-12-13 16:14:05 · 1643 阅读 · 0 评论 -
color model(颜色模型/色彩模型)
一、CIE1931-RGB标准色度系统(色彩空间),选择了700nm(R) 546.1nm(G) 435.8nm(B) 三种波长的单色光作为三原色。CIE1931-RGB 三刺激值曲线,根据人类视觉实验结果绘制。颜色的概念可以分为两部分:亮度(光的振幅,即明暗程度)、色度(光的波长组合,即具体某种颜色)。我们将光的亮度(Y)变量分离出来,用比例来表示三色刺激值,这样就能得出r+g+b=1。由此可见,色度坐标r、g、b中只有两个变量是独立的。这样我们就把刺激值R、G、B转换成r、g、Y(亮度.原创 2021-12-13 16:13:11 · 3894 阅读 · 0 评论 -
YUV格式
RGB、YUV和YCbCr都是人为规定的彩色模型。在 YUV 空间中,每一个颜色有一个亮度信号 Y,和两个色度信号 U 和 V。YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。YCbCr(或Y'CbCr) 颜色空间是YUV的国际标准化变种,在数字电视和图像压缩(比如JPEG)方面都有应用。一般人们所讲的YUV大多是指YCbCr。主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。其中YCbCr 4:1:1 比较常原创 2021-12-13 16:09:55 · 208 阅读 · 0 评论 -
ffmpeg 3D视频编码
转mp4左右格式:ffmpeg -i 3D.mp4 -vf "stereo3d=sbsl:ml,scale=1920:1080" left.mp4上下格式:ffmpeg -i 3D.mp4 -vf "stereo3d=abl:ml,scale=1920:1080" left.mp4ffmpeg -i 3D.mp4 -vf "stereo3d=abl:mr,scale=1920:1080" right.mp4转png左右格式:ffmpeg -i 3D.mp4 -vf "stereo3d=s原创 2021-12-06 11:12:42 · 1059 阅读 · 0 评论 -
ffmpeg tone mapping
ffmpeg -threads 16 -i input1.mp4 -vf zscale=t=linear:npl=57,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p -c:v libx264 -preset fast -crf 18 output.mp4https://www.reddit.com/r/ffmpeg/comments/lrqqe原创 2021-12-06 11:11:38 · 419 阅读 · 0 评论 -
ffmpeg丢弃每个偶数或奇数帧
输出奇数帧ffmpeg -y -threads 16 -r 2 -s WxH -pix_fmt yuv420p -i xxx.yuv -filter:v select="mod(n-1\,2)" -c:v rawvideo -r 1 -format rawvideo -pix_fmt yuv420p -an odd.yuv输出偶数帧ffmpeg -y -threads 16 -r 2 -s WxH -pix_fmt yuv420p -i xxx.yuv -filter:v select="not(m原创 2021-12-06 11:10:53 · 889 阅读 · 0 评论 -
ffmpeg 音频处理
视频抽取音频ffmpeg -threads 16 -i xxx.mp4 xxx.wav (能提取5.1声道,采用这个!!!)或ffmpeg -threads 16 -i xxx.mp4 xxx.wav -acodec aac -vn -ac 2 -ar 48000 -ab 128000 xxx.aac (有压缩,默认提取2声道)提取aac音频:ffmpeg -i 3.mp4 -c:a copy 3.aachttps://blog.youkuaiyun.com/zhezhebie/article/d..原创 2021-12-06 11:08:39 · 860 阅读 · 0 评论 -
ffmpeg 查看码流信息
ffprobe -show_streams video.mp4帧率 avg_frame_rate原创 2021-12-03 16:15:01 · 1534 阅读 · 0 评论 -
ffmpeg 码率控制
-preset 取值范围10个等级,默认medium 选择越快,质量越差,文件越小,速度越快-crf 取值范围18~28 值越大,质量越差,文件越小,速度不影响-b:v 取值一般在5M~20M 值越小,质量越差,文件越小,速度不影响-qp 取值0表示无损压缩-preset目前所有的预设按照编码速度降序排列为(10个等级):ultrafast, superfast, veryfast, faster...原创 2021-12-03 16:14:04 · 5713 阅读 · 1 评论 -
ffmpeg 分割和合并
剪切yuv片段剪切yuv 从201帧到700帧 闭区间 (常用!!!)ffmpeg -threads 16 -s 1920x1080 -pix_fmt yuv420p -i input.yuv -vf select='between(n\,201\,700)' xxx.yuv=========================================================================# 将码流分段解出yuv,每段持续2秒,总共最多解500帧,指定输出分辨..原创 2021-12-03 16:12:57 · 2152 阅读 · 0 评论 -
ffmpeg 改变分辨率
yuv改变分辨率 指定bicubic方式ffmpeg -threads 16 -f rawvideo -s 1920x1080 -pix_fmt yuv420p -i input.yuv -vf scale=-1:2160 -sws_flags bicubic -pix_fmt yuv420p output.yuv(-vf等价于-filter:v)sws_flags 只能选择一个算法。默认值为“bicubic”。它接受以下值:“fast_bilinear”选择快速双线性缩放算法。‘bilin原创 2021-12-03 16:10:57 · 2744 阅读 · 0 评论 -
ffmpeg mp4转mov
mp4转movffmpeg -threads 16 -i xxx.mp4 -c:v prores -c:a copy -profile:v 0 xxx.movmov转mp4ffmpeg -threads 16 -i xxx.mov -c:v libx264 -c:a copy -preset fast -crf 18 xxx.mp4===================================================================================原创 2021-12-03 16:09:28 · 2164 阅读 · 0 评论 -
ffmpeg yuv处理
yuv444和yuv420互转yuv444转yuv420ffmpeg -threads 16 -s 1920*1080 -pix_fmt yuv444p10le -i 1.yuv -pix_fmt yuv420p10le 2.yuvyuv420转yuv444ffmpeg -threads 16 -s 1920*1080 -pix_fmt yuv420p -i 1.yuv -pix_fmt yuv444p 2.yuvhttps://blog.youkuaiyun.com/qq_27956971/articl原创 2021-12-03 16:08:29 · 2263 阅读 · 0 评论 -
ffmpeg png图片处理
mp4和png互转mp4转pngffmpeg -threads 16 -i xxx.mp4 -start_number 1 -vf pp=lb -vsync 0 img/%06d.pngpng转mp4ffmpeg -threads 16 -r 25 -i img/%06d.png -pix_fmt yuv420p -c:v libx264 -preset fast -crf 18 test.mp4从第n张图片开始ffmpeg -threads 16 -start_number 1 -r 2原创 2021-12-03 16:05:35 · 2129 阅读 · 0 评论 -
ffmpeg mp4和yuv互转
mp4转yuv解交织方式ffmpeg -threads 16 -i input.mp4 -vf pp=lb -vsync 0 -pix_fmt yuv420p output.yuvffmpeg -threads 16 -i input.mp4 -vsync 0 -pix_fmt yuv420p output.yuv(默认-pix_fmt yuv420p)two pass:(先mp4转264,再转yuv)./ffmpeg -i t9_deal.mp4 -vcodec copy t9_deal.原创 2021-12-03 16:04:21 · 9285 阅读 · 0 评论 -
ffmpeg 加黑边和去黑边
加黑边ffmpeg -threads 16 -i input.mp4 -vf pad=a:b:c:d:black -acodec copy -crf 12 output.mp4加黑边增加的是画面区域的右侧和下侧。去黑边ffmpeg -threads 16 -i input.mp4 -vf crop=a:b:c:d -acodec copy -crf 12 output.mp4(注意:宽和高需要满足是偶数)其中a、b、c、d分别代表的参数是a为输出的宽度,b为输出的高度,c为需要左.原创 2020-11-02 17:16:53 · 3879 阅读 · 1 评论 -
python cv2 图像加黑边
cv2.copyMakeBorder(src, top, bottom, left, right, borderType)函数src : 输入的图片top, bottom, left, right :相应方向上的边框宽度borderType:定义要添加边框的类型比如img6 = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_CONSTANT)#添加红色边界#RED = [255,0,0]#img6 = cv2.copyMakeBorder原创 2021-02-04 12:35:16 · 5523 阅读 · 2 评论 -
RGB2YUV
RGB2YUV有BT.601和BT.709和BT.2020三种标准,计算公式分别为% BT.601标准Y = 0.299*omg(:,:,1) + 0.587*omg(:,:,2) + 0.114*omg(:,:,3);U = -0.147*omg(:,:,1)- 0.289*omg(:,:,2) + 0.436*omg(:,:,3);V = 0.615*omg(:,:,1) - 0.5...原创 2019-03-12 17:04:15 · 3124 阅读 · 0 评论 -
视频压缩 x264和x265
多媒体领域 H.264 编解码的过程 H.264 码流的结构预测编码,帧内预测,帧间预测,运动补偿,运动估计,运动矢量,变换编码,离散余弦变换,量化参数,熵编码,哈夫曼编码、算数编码。预测编码旨在消除视频的数据冗余,经过编码压缩后,传输的不是图像中每个像素点的实际取样值,而是预测值与实际值之差。预测编码分为帧内预测和帧间预测,分别用来消除帧内冗余和帧间冗余。帧内预测就是用邻近像素块...原创 2019-02-11 09:42:58 · 3745 阅读 · 0 评论 -
视频主观损失
1. 空域主观损失 块效应 虚边 振铃效应 振铃效应常出现在图像中尖锐的过渡(Sharp Transitions) 处,例如强的边界和线。 从视觉角度看,好像在真实边缘附件出现了一条虚拟的条带 基向量效应 模糊 色度扩散 该效应对于亮度而言为模糊, 对色度而言即为色度扩散, 在色度变化非常大的区域出现色彩污点,与模糊一样2. 时域主观损失 客观分析模型如 SSI...原创 2019-01-02 17:00:40 · 252 阅读 · 0 评论 -
视频技术的一些参数
分辨率 1080P 2K等由于保存完整的一帧一帧图片的视频原文件太大,必须要通过某种视频压缩算法将视频中的图片压缩,以减小视频文件大小。压缩比越大,解压缩还原后用来播放的视频就会有越严重的失真。码率,简单来说就是指在压缩视频的时候给这个视频指定一个参数,用以告诉压缩软件期望的压缩后视频的大小。码率的英文名为bps(bit per second),就是用平均每秒多少bit来衡量一个视频大小。...原创 2018-12-03 17:08:43 · 3906 阅读 · 1 评论