TRTC, Agora, LiveKit 및 기타 브라우저 실시간 파이프라인에 Facebetter 뷰티를 연결합니다
SDK 2.0.0. Web SDK에는 네이티브 스타일의 통합 “GL 텍스처 전처리 콜백”이 없습니다. 대신 이 파이프라인을 사용하세요.캡처 → processImage → 캔버스에 그리기 → captureStream / MediaStreamTrack 가져오기 → 서드파티 SDK에 전달(replaceTrack 또는 커스텀 비디오 트랙).인증은 licenseToken만 사용합니다. init() 전에 서버에서 받으세요. 프론트엔드 JS에 appKey를 넣지 마세요. 인증 및 라이선스와 뷰티 효과 적용을 참고하세요.
뷰티 트랙에서 로컬 스트림 생성(커스텀 비디오 소스 / MediaStreamTrack 전달)
카메라 스트림을 먼저 만든 뒤 replaceTrack(beautyTrack)
// Sketch: replace the video track on a local stream// const localStream = TRTC.createStream({ ... });// await localStream.initialize();// await localStream.replaceTrack(beautyTrack);// await client.publish(localStream);
Web에 네이티브 스타일 onProcessVideoFrame(textureId)가 있다고 가정하지 마세요.
import AgoraRTC from 'agora-rtc-sdk-ng';// A: custom video track from MediaStreamTrack (API name per agora-rtc-sdk-ng)const customVideoTrack = AgoraRTC.createCustomVideoTrack({ mediaStreamTrack: beautyTrack,});await client.publish([customVideoTrack /*, microphoneTrack */]);// B: already have a camera track// await cameraTrack.replaceTrack(beautyTrack);
처리된 트랙을 LiveKit 로컬 비디오 트랙 팩토리에 넣거나, 게시된 트랙에서 교체하세요.
import { Room, LocalVideoTrack, createLocalVideoTrack } from 'livekit-client';// Sketch: create from MediaStreamTrack and publish (factory name per livekit-client)const track = LocalVideoTrack.createFromMediaStreamTrack(beautyTrack);await room.localParticipant.publishTrack(track);// Or on an existing LocalVideoTrack:// await localVideoTrack.replaceTrack(beautyTrack);