计算机 · 2024年3月25日 0

puffer直播系统

介绍puffer的论文

https://www.usenix.org/conference/nsdi20/presentation/yan

代码库:

https://github.com/StanfordSNR/puffer/tree/master

编译运行puffer

作者给的编译运行的文档

https://github.com/StanfordSNR/puffer/wiki/Documentation

编译puffer

安装依赖libmpeg2-4-dev, libopus-dev, libsndfile1-dev, libavformat-dev, libpq-dev, libpqxx-dev, libyaml-cpp-dev, libcrypto++-dev, liba52-0.7.4-dev, libtorch-dev 。

把src/media_server/Makefile.am里链接mkldnn的flag给去掉,因为libtorch_cpu.so会自动链接libdnn,这个flag是完全多余的,不去掉还会报找不到mkldnn库的错。

diff --git a/src/media-server/Makefile.am b/src/media-server/Makefile.am
index acaac36..ade4d50 100644
--- a/src/media-server/Makefile.am
+++ b/src/media-server/Makefile.am
@@ -26,7 +26,7 @@ ws_media_server_LDFLAGS = -L../../third_party/libtorch/lib \
        '-Wl,-rpath,$$ORIGIN/../../third_party/libtorch/lib'
 ws_media_server_LDADD = ../util/libutil.a ../net/libnet.a ../util/libutil.a \
        $(POSTGRES_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(YAML_LIBS) -lstdc++fs \
-       -ltorch -ltorch_cpu -lc10 -lmkldnn
+       -ltorch -ltorch_cpu -lc10
 
 run_servers_SOURCES = run_servers.cc
        ../monitoring/influxdb_client.hh ../monitoring/influxdb_client.cc

现在可以开始编译了,

./autogen.sh
./configure
make -j4 CXXFLAGS='-DNONSECURE'

是否添加这个NONSECURE的宏完全看自己是否乐意去折腾ssl证书。

puffer的web服务器与媒体服务器