from ParallelTalk MVP v1

20230602

  • I think I can finish it in a day if I put my mind to it, so I’ll build it while I’m in the mood (blu3mo)
  • https://www.100ms.live/docs/javascript/v2/how-to-guides/record-and-live-stream/hls/hls
  • https://github.com/video-dev/hls.js/
  • image
    • For now, I can display webrtc and hls at the same time, but the delay and instability of hls are severe.
    • I need to think of a way to reduce the delay.
      • Beam -> ?? -> HLS, that flow.
    • I need to think of another way to obtain past footage.
      • Record locally?
        • This might work.
      • Can’t I take the buffer on the central server with WebRTC?
      • YouTube Stream API
    • image
      • It’s really expensive.
      • I guess I can’t rely on 100ms for this.
    • https://chat.openai.com/share/7ab91389-2740-4d11-a5a3-dc1b5645e0a0
      • It seems like having it locally might work (blu3mo)(blu3mo)
      • MediaRecording API
      • Flickering occurs.
        • https://www.tilcode.com/react-fixing-flickering-video-redraw/
        • Use a double buffering technique: Create two video elements and switch between them while updating the source of the non-visible one. This way, the update won’t be visible to the user, and you can avoid the flickering effect.

          • This is bad because PiP will break.
        • Update the video src less frequently: Instead of updating the src every 5000ms, try increasing the interval to a larger value. This will reduce the number of times the video flickers, although it may not completely eliminate the issue.

        • Concatenate the chunks before updating the src: Instead of updating the src with the latest chunk, try concatenating all the chunks and updating the src once the recording is stopped. This way, the flickering will only happen once, at the end of the recording.

        • Use a custom video player: Utilize a custom video player like Video.js or Plyr with better buffer handling capabilities. These players may provide a smoother playback experience and handle the src updates more efficiently, reducing the flickering effect.

          • It’s better to have more freedom in the future, so maybe I’ll try Video.js (blu3mo)
        • Implement a custom buffer management system: Instead of relying on the browser’s default buffer handling, implement a custom buffer management system that can handle the src updates more efficiently. This may involve using a combination of the MediaSource API and SourceBuffer API to manage the video playback and reduce flickering.

20230304

  • I have a clear image of the MVP I want to create, so I want to implement it over the weekend.

    • Since it’s a weekend with no assignments, I want to make good use of it.
    • Hackathon vibes.
  • Creating Things That Work Even When Small

  • If I can make it this far, I can say I’ve achieved my goal.

  • Sat

    • I want to aim for at least 1, preferably 2.
    • 1 done, it was just running the demo of 100ms ✅
  • Sun

    • If 2 is properly done, 3, 4, 5 will just be a matter of doing them.
      • I’m a little worried about the specifications of 100ms for 3.
  • Something that can make calls and listen to past audio.

    • HLS streaming
      • https://www.100ms.live/blog/hls-streaming
        • It’s very comprehensive.
      • 100ms supports live streaming output via HLS. However, we use WebRTC as input for the stream, unlike services that offer the infrastructure for live streaming alone, which generally use RTMP.

        • I see~ (blu3mo)
        • Originally, I was planning to do this with Kineto, but I changed it to RMTP->HLS along the way.
      • 100ms will handle video recording for up to 72 hours.
        • Beyond that, you need to integrate with AWS.
    • SFU Recording
      • When doing WebRTC via the central server instead of p2p, it’s the one that records it.
      • Either way, I need to stream it with HLS, so I can leave this for now.
  • In fact, 100ms-web has too many features and is difficult to handle.

  • https://www.100ms.live/blog/clubhouse-clone-react

  • Will this work?

20230131