测试
本次测试选择ffmpeg的推流方式,如图所示。 并将其发送端视频和接收端视频输入给 VMAF ,得到 VMAF 得分,直观地评估 SAW 服务器的性能。
VMAF
VMAF(Video Multimethod Assessment Fusion)是一种用于视频质量评估的算法和工具,由Netflix开发。它采用了多种评估方法,并将它们进行融合,以提供更全面、准确的视频质量评估。VMAF 的评分通常在0到100之间,分数越高表示视频质量越好。
编译
sh
cargo buildcargo build切换至项目的/target/release目录
sh
cargo build --release
cargo build --package=whipinto --release
cargo build --package=whepfrom --releasecargo build --release
cargo build --package=whipinto --release
cargo build --package=whepfrom --release运行
- 运行服务器
sh
./live777./live777- 推流的时候同时录制
sh
ffmpeg -re -f lavfi -i testsrc=size=640x480:rate=30 -c:v libvpx -b:v 1M -f rtp 'rtp://127.0.0.1:5003?pkt_size=1200' -an input.webmffmpeg -re -f lavfi -i testsrc=size=640x480:rate=30 -c:v libvpx -b:v 1M -f rtp 'rtp://127.0.0.1:5003?pkt_size=1200' -an input.webm- 运行whipinto
sh
./whipinto -c vp8 -u http://localhost:7777/whip/777 --port 5003./whipinto -c vp8 -u http://localhost:7777/whip/777 --port 5003- 运行whepform
sh
./whepfrom -c vp8 -u http://localhost:7777/whep/777 -t localhost:5004./whepfrom -c vp8 -u http://localhost:7777/whep/777 -t localhost:5004- 构建sdp文件
sh
cat > stream.sdp << EOF
v=0
m=video 5004 RTP/AVP 96
c=IN IP4 127.0.0.1
a=rtpmap:96 VP8/90000
EOFcat > stream.sdp << EOF
v=0
m=video 5004 RTP/AVP 96
c=IN IP4 127.0.0.1
a=rtpmap:96 VP8/90000
EOF- 播放视频的时候录制
sh
ffmpeg -protocol_whitelist rtp,file,udp -i stream.sdp -c:v copy -an output.webmffmpeg -protocol_whitelist rtp,file,udp -i stream.sdp -c:v copy -an output.webm在当前目录下得到input.webm和output.webm视频 将input.webm和output.webm转成yuv格式
sh
ffmpeg -i input.webm -pix_fmt yuv420p input.yuv
ffmpeg -i output.webm -pix_fmt yuv420p output.yuvffmpeg -i input.webm -pix_fmt yuv420p input.yuv
ffmpeg -i output.webm -pix_fmt yuv420p output.yuv输入到vmaf模型中
sh
sudo docker run --rm -v $(pwd):/files vmaf yuv420p 640 480 /files/output1.yuv /files/output2.yuv --out-fmt jsonsudo docker run --rm -v $(pwd):/files vmaf yuv420p 640 480 /files/output1.yuv /files/output2.yuv --out-fmt jsonvmaf报告
从第0帧-625帧,每一帧的具体分析 第0-1帧vmaf评估
最后一帧vmaf评估
最后通过平均得综合vamf得分为97.8669,评分较高 
总结
通过此次测试,我们得出以下结论:
网络传输和带宽管理: SAW 在网络传输方面表现出色,有效地管理带宽、减少丢包,并保持视频流畅性。
实时性能: SAW 具备高实时性能,确保输入视频能快速、稳定地传输到输出端,同时不影响视频质量。
稳定性和适应性: SAW 表现出良好的稳定性和适应性,能够应对网络波动、不稳定的连接以及其他挑战,确保输出视频质量的稳定性。
这些结论强调了 SAW 在不同方面的优异性能,为其在视频传输领域的应用提供了有力的支持。