AlphaRTC
- 环境配置:
pull form docker - 测试数据:仓库提供的 examples
似乎不能发送太大的文件(1920x1080x24fps 的视频直接失败)
接收到的音视频数据大小明显大于 ffmpeg 生成的 YUV 和 wav(实际上是时长问题)
sender 在连接断开之前会一直重复视频流,receiver 在 sender 未连接时不会输出,所以 receiver 的工作时间可以比 sender 长
receiver 的输出虽然默认配置文件的拓展名是yuv但实际上是 y4m 格式(所以不能被像素数量整除,因为有文件头)链接
build docker image
原仓库使用 ubuntu 18.04,与新版gn不兼容,所以修改dockers/Dockerfile.compile
,使用 ubuntu 20.04
Vmaf
- 安装:arch 大法
命令:
vmaf -r test.y4m -d example/outvideo.yuv
测试数据
YUV 数据格式
提取音视频流:
ffmpeg -i kara.mkv -vf "fps=24,scale=640:360:flags=lanczos,format=yuv420p" -ss 19:46 -t 20 -c:v rawvideo -pix_fmt yuv420p kara.yuv -vn -acodec pcm_s16le -ar 44100 -ac 2 kara.wav
-i kara.mkv
: 这部分指定了输入文件的名称,即kara.mkv
。-vf "fps=24,scale=640:360:flags=lanczos,format=yuv420p"
: 这是视频过滤器选项。它包括以下几个部分:fps=24
: 设置输出视频的帧率为 24 帧每秒。scale=640:360
: 调整视频的分辨率为 640x360 像素。flags=lanczos
: 使用 Lanczos 算法进行缩放。format=yuv420p
: 设置输出视频的像素格式为 YUV420P。
-c:v rawvideo -pix_fmt yuv420p kara.yuv
: 这部分指定了输出视频文件的名称为kara.yuv
,并使用原始视频编码(rawvideo)和 YUV420P 像素格式。-vn -acodec pcm_s16le -ar 44100 -ac 2 kara.wav
: 这是音频选项,用于生成音频文件kara.wav
:-vn
: 禁用视频流。-acodec pcm_s16le
: 使用 16 位有符号整数的 PCM 编码。-ar 44100
: 设置音频采样率为 44.1 kHz。-ac 2
: 设置音频通道数为 2(立体声)。
从 YUV 编码视频:
ffmpeg -f rawvideo -pix_fmt yuv420p -s 320x240 -r 10 -i outv.yuv -y outv.y4m
y4m 可以用 ffplay 播放