-
Notifications
You must be signed in to change notification settings - Fork 3
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
RTSP input #13
RTSP input #13
Conversation
Co-authored-by: Jakub Pryc <[email protected]> Co-authored-by: Łukasz Kita <[email protected]>
Use new rtmp api
test/support/compare.ex
Outdated
# [{audio_id, %Membrane.AAC{}}, {video_id, %Membrane.H264{}}] = | ||
# Enum.sort_by(tracks, fn {_id, %format{}} -> format end) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👀
mix.exs
Outdated
# {:membrane_webrtc_plugin, | ||
# github: "membraneframework/membrane_webrtc_plugin", branch: "bump_rtp_plugin"}, | ||
{:ex_sdp, "~> 0.17.0", override: true}, | ||
{:membrane_webrtc_plugin, "~> 0.21.0"}, | ||
{:membrane_opus_plugin, "~> 0.20.0"}, | ||
# {:membrane_opus_plugin, "~> 0.20.0"}, | ||
{:membrane_opus_plugin, | ||
github: "membraneframework/membrane_opus_plugin", branch: "non-monotonic-pts-fix"}, | ||
{:membrane_aac_plugin, "~> 0.18.0"}, | ||
{:membrane_aac_fdk_plugin, "~> 0.18.0"}, | ||
{:membrane_h26x_plugin, "~> 0.10.0"}, | ||
{:membrane_h264_ffmpeg_plugin, "~> 0.32.0"}, | ||
{:membrane_mp4_plugin, | ||
github: "membraneframework/membrane_mp4_plugin", branch: "wip-avc3", override: true}, | ||
{:membrane_mp4_plugin, "~> 0.35.2", override: true}, | ||
{:membrane_realtimer_plugin, "~> 0.9.0"}, | ||
{:membrane_http_adaptive_stream_plugin, "~> 0.18.0"}, | ||
# {:membrane_http_adaptive_stream_plugin, "~> 0.18.0"}, | ||
{:membrane_http_adaptive_stream_plugin, | ||
github: "membraneframework/membrane_http_adaptive_stream_plugin", branch: "fix-linking"}, | ||
{:membrane_rtmp_plugin, "~> 0.25.0"}, | ||
{:membrane_rtsp_plugin, | ||
github: "membraneframework-labs/membrane_rtsp_plugin", branch: "allow-for-eos"}, | ||
# {:membrane_rtsp_plugin, "~> 0.2.0"}, | ||
{:membrane_udp_plugin, "~> 0.14.0"}, | ||
{:membrane_rtp_plugin, "~> 0.29.0", override: true}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we clean up these?
lib/boombox/rtsp.ex
Outdated
%Membrane.H264.Parser{ | ||
spss: spss, | ||
ppss: ppss | ||
# generate_best_effort_timestamps: %{framerate: {60, 1}} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
# generate_best_effort_timestamps: %{framerate: {60, 1}} |
lib/boombox/rtsp.ex
Outdated
def handle_input_tracks(tracks) do | ||
track_builders = | ||
Map.new(tracks, fn | ||
{ssrc, %{rtpmap: %{encoding: "H264"}} = track} -> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's raise a readable error when encoding doesn't match
_muxed_header -> :muxed_av | ||
end | ||
|
||
# %{audio_track: audio_track, video_track: video_track} = get_tracks(opts.directory, hls_mode) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
lib/boombox/pipeline.ex
Outdated
@@ -61,7 +61,8 @@ defmodule Boombox.Pipeline do | |||
spec_builder: [], | |||
track_builders: nil, | |||
last_result: nil, | |||
eos_info: nil | |||
eos_info: nil, | |||
rtsp_state: %{set_up_tracks: %{}, tracks_left_to_link: 0, track_builders: %{}} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's move the state initialization to RTSP module
lib/boombox/pipeline.ex
Outdated
set_up_tracks: %{ | ||
optional(:audio) => Membrane.RTSP.Source.track(), | ||
optional(:video) => Membrane.RTSP.Source.track() | ||
}, | ||
tracks_left_to_link: non_neg_integer(), | ||
track_builders: Boombox.Pipeline.track_builders() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-> Boombox.RTSP
solves: #5