LiveTalking 部署踩坑笔记

目录

版本特点:

musetalk方案

[一、先确认:1985 端口有没有在监听](#一、先确认:1985 端口有没有在监听)

Windows:

Linux:

[报错:SyntaxError: '(' was never closed](#报错:SyntaxError: '(' was never closed)


版本特点:

  • 日常开发 / 测试 / 本地实时 Demo → Wav2Lip

  • 高质量数字人 / 渲染视频 → ErNeRF

  • 虚拟主播 / 二次元 / 带表情互动 → MuseTalk

musetalk方案

https://www.bilibili.com/video/BV1gm421N7vQ/?vd_source=d4dc8f82f62c00f6ff1db7a1047e538f

一、先确认:1985 端口有没有在监听

在运行 SRS 的机器上执行:

Windows:

netstat -ano | findstr 1985

Linux:

ss -lntp | grep 1985

启动服务:

http://127.0.0.1:8010/webrtcapi.html

报错:SyntaxError: '(' was never closed

解决:

self.__video 结尾应该加逗号。

python 复制代码
    def _start(self, track: PlayerStreamTrack) -> None:
        self.__started.add(track)
        if self.__thread is None:
            self.__log_debug("Starting worker thread")
            self.__thread_quit = threading.Event()
            self.__thread = threading.Thread(
                name="media-player",
                target=player_worker_thread,
                args=(
                    self.__thread_quit,
                    asyncio.get_event_loop(),
                    self.__container,
                    self.__audio,
                    self.__video                   
                ),
            )
            self.__thread.start()

    def _stop(self, track: PlayerStreamTrack) -> None:
        self.__started.discard(track)

        if not self.__started and self.__thread is not None:
            self.__log_debug("Stopping worker thread")
            self.__thread_quit.set()
            self.__thread.join()
            self.__thread = None

        if not self.__started and self.__container is not None:
            #self.__container.close()
            self.__container = None
python 复制代码
    def _start(self, track: PlayerStreamTrack) -> None:
        self.__started.add(track)
        if self.__thread is None:
            self.__log_debug("Starting worker thread")
            self.__thread_quit = threading.Event()
            self.__thread = threading.Thread(
                name="media-player",
                target=player_worker_thread,
                args=(
                    self.__thread_quit,
                    asyncio.get_event_loop(),
                    self.__container,
                    self.__audio,
                    self.__video,                   
                ),
            )
            self.__thread.start()

    def _stop(self, track: PlayerStreamTrack) -> None:
        self.__started.discard(track)

        if not self.__started and self.__thread is not None:
            self.__log_debug("Stopping worker thread")
            self.__thread_quit.set()
            self.__thread.join()
            self.__thread = None

        if not self.__started and self.__container is not None:
            #self.__container.close()
            self.__container = None
相关推荐
玩电脑的辣条哥10 个月前
Ubuntu如何部署AI-Sphere-Butler(metahuman-stream)
linux·ubuntu·数字人·aispherebutler·livetalking·metahumastream·ai全能管家