ffmpeg
Metrics
VMAF
ffmpeg -f rawvideo -s 1280x720 -pix_fmt yuv420p -i ref.yuv -f rawvideo -s 1280x720 -pix_fmt yuv420p -i dis.yuv -filter_complex "libvma...
阅读更多
Go语言中main函数没有形参, 所以不能直接通过main函数获取命令行参数。
无论外界传入的是什么类型, 拿到的都是字符串类型
通过os包获取命令行参数
package main
import (
"fmt"
"os"
)
func main() {
// 1.获取传入参数个数
num ...
阅读更多
Go 采用的是 三色并发标记清除算法。
传统的 GC 算法需要较长的 STW (Stop The World) 停顿时间(即暂停所有应用程序代码的运行来执行 GC)。
Go GC 的首要目标就是将 STW 停顿时间降到毫秒级甚至微秒级。
三色标记法
Go GC将堆上的所有对象分为三种颜色:
...
阅读更多
命名规则
命名规则同C语言。关键字不能用于命名:
break default func interface select
case defer go map struct
chan else ...
阅读更多
go run
编译并直接运行 Go 程序。它不会在当前目录下生成二进制文件,适合快速测试代码或运行脚本。
# 运行当前目录下的 main.go
go run main.go
# 运行包含多个文件的 main 包
go run .
go build
编译包和依赖项。如果是 main 包,它会生成一个可执...
阅读更多
hello world
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
package
Go 语言的代码通过包(package)组织,包类似于其它语言里的库(libraries)或者模块(modules)。
...
阅读更多
FFmpeg的核心设计思想是模块化和分层,其架构可以分为三个层次:
底层核心库 (Core Libraries): 提供音视频处理的原子能力,如编解码、格式封装/解封装、滤镜、像素/采样格式转换等。这是FFmpeg的基石。
上层应用层 (Application Layer): 基于核心库开发出的可执行...
阅读更多
好的,我们来详细解析HEVC码流(Bitstream)的层次结构,并深入辨析VPS、SPS和PPS这三个关键参数集之间的区别。
作为一名C++开发工程师,你可以将HEVC码流结构理解为一个精心设计的数据结构,它通过层次化的信令来高效地组织和传输视频数据。
1. HEVC码流的基本构成:NAL单元 (NAL U...
阅读更多