Skip to content

Initial standalone Recorder+Converter implementation #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Feb 19, 2025
Merged

Conversation

sgfn
Copy link
Member

@sgfn sgfn commented Feb 19, 2025

Changes from ex_webrtc v0.8.1

Features

  • Converter now combines video and audio tracks belonging to the same stream, syncs them and outputs a WEBM file
    • When using simulcast, this results in 3 output files, one per layer
  • Converter can generate thumbnails for the result files
  • Recorder can upload the RTP dumps to S3-compatible storage
  • Converter can download the RTP dumps from S3-compatible storage, and upload the conversion results there as well

Breaking changes

Recorder

  • Recorder now has a controlling process to which it sends messages
    • At the moment, messages are sent only when using S3 uploads
  • The nomenclature of report (and the report.json file) was changed to manifest (manifest.json)
  • add_tracks/2 now returns {:ok, manifest :: Recorder.manifest()}
    • manifest contains only the parts relevant to the added tracks, and not the entire manifest of the Recorder

Converter

  • Converter now generates WEBM files using FFmpeg, so it requires the ffmpeg binary with the relevant libraries present in PATH
  • convert!/2 now accepts t:Converter.options/0 as the second argument

Non-breaking important changes

Recorder

  • New function end_tracks/2 that closes the relevant file handles and optionally schedules the S3 upload

Converter

  • convert!/2 can also accept t:Recorder.manifest/0 as the first argument (e.g. the manifest returned by Recorder.end_tracks/2)

@sgfn sgfn merged commit 25f156b into main Feb 19, 2025
1 check passed
@sgfn sgfn deleted the sgfn/initial branch February 19, 2025 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants