Skip to content

Commit

Permalink
use the new parser
Browse files Browse the repository at this point in the history
  • Loading branch information
mat-hek committed Aug 16, 2023
1 parent 3230892 commit 699f4ac
Show file tree
Hide file tree
Showing 12 changed files with 43 additions and 45 deletions.
7 changes: 3 additions & 4 deletions examples/muxer_cmaf.exs
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,9 @@ defmodule Example do
location: @video_url,
hackney_opts: [follow_redirect: true]
})
|> child(:video_parser, %Membrane.H264.FFmpeg.Parser{
framerate: {25, 1},
alignment: :au,
attach_nalus?: true
|> child(:video_parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: {25, 1},
alignment: :au
})
|> child(:video_payloader, Membrane.MP4.Payloader.H264)
|> via_in(Pad.ref(:input, :video))
Expand Down
7 changes: 3 additions & 4 deletions examples/muxer_isom.exs
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,9 @@ defmodule Example do
location: @video_url,
hackney_opts: [follow_redirect: true]
})
|> child(:video_parser, %Membrane.H264.FFmpeg.Parser{
framerate: {30, 1},
alignment: :au,
attach_nalus?: true
|> child(:video_parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: %{framerate: {30, 1}},
alignment: :au
})
|> child(:video_payloader, Membrane.MP4.Payloader.H264),
child(:audio_source, %Membrane.Hackney.Source{
Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ defmodule Membrane.MP4.Plugin.MixProject do
{:membrane_aac_format, "~> 0.7.0"},
{:membrane_h264_format, "~> 0.5.0"},
{:membrane_opus_format, "~> 0.3.0"},
{:membrane_h264_plugin, "~> 0.4.0"},
{:membrane_h264_plugin, "~> 0.6.0"},
{:bunch, "~> 1.5"},
{:membrane_file_plugin, "~> 0.15.0"},
{:membrane_h264_ffmpeg_plugin, "~> 0.27.0", only: :test},
Expand Down
8 changes: 4 additions & 4 deletions mix.lock
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,21 @@
"earmark_parser": {:hex, :earmark_parser, "1.4.33", "3c3fd9673bb5dcc9edc28dd90f50c87ce506d1f71b70e3de69aa8154bc695d44", [:mix], [], "hexpm", "2d526833729b59b9fdb85785078697c72ac5e5066350663e5be6a1182da61b8f"},
"elixir_make": {:hex, :elixir_make, "0.7.7", "7128c60c2476019ed978210c245badf08b03dbec4f24d05790ef791da11aa17c", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "5bc19fff950fad52bbe5f211b12db9ec82c6b34a9647da0c2224b8b8464c7e6c"},
"erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
"ex_doc": {:hex, :ex_doc, "0.29.4", "6257ecbb20c7396b1fe5accd55b7b0d23f44b6aa18017b415cb4c2b91d997729", [:mix], [{:earmark_parser, "~> 1.4.31", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "2c6699a737ae46cb61e4ed012af931b57b699643b24dabe2400a8168414bc4f5"},
"ex_doc": {:hex, :ex_doc, "0.30.4", "e8395c8e3c007321abb30a334f9f7c0858d80949af298302daf77553468c0c39", [:mix], [{:earmark_parser, "~> 1.4.31", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "9a19f0c50ffaa02435668f5242f2b2a61d46b541ebf326884505dfd3dd7af5e4"},
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
"jason": {:hex, :jason, "1.4.0", "e855647bc964a44e2f67df589ccf49105ae039d4179db7f6271dfd3843dc27e6", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "79a3791085b2a0f743ca04cec0f7be26443738779d09302e01318f97bdb82121"},
"jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"},
"makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"},
"makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"},
"makeup_erlang": {:hex, :makeup_erlang, "0.1.2", "ad87296a092a46e03b7e9b0be7631ddcf64c790fa68a9ef5323b6cbb36affc72", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f3f5a1ca93ce6e092d92b6d9c049bcda58a3b617a8d888f8e7231c85630e8108"},
"membrane_aac_format": {:hex, :membrane_aac_format, "0.7.0", "93ea75b57d5cbee5db59f0250baba65a8949d32ee4cfa38224e93ea306c30048", [:mix], [{:bimap, "~> 1.1", [hex: :bimap, repo: "hexpm", optional: false]}], "hexpm", "3233d2a5a1b264039a198abcef3b7f1c64f5bde9704ec01afbf1bab43a56d415"},
"membrane_aac_plugin": {:hex, :membrane_aac_plugin, "0.15.0", "070367d3d2e5f5279cd52eb5511bafea7d7a3cf4f14229f0eb66978ffaae0451", [:mix], [{:bunch, "~> 1.0", [hex: :bunch, repo: "hexpm", optional: false]}, {:crc, "~> 0.10.2", [hex: :crc, repo: "hexpm", optional: false]}, {:membrane_aac_format, "~> 0.7.0", [hex: :membrane_aac_format, repo: "hexpm", optional: false]}, {:membrane_core, "~> 0.12.0", [hex: :membrane_core, repo: "hexpm", optional: false]}], "hexpm", "0ba6e70c484a65c6264cdfa70c974c417eaa611341e16136d5ba02991fdda868"},
"membrane_cmaf_format": {:hex, :membrane_cmaf_format, "0.7.0", "573bfff6acf2371c5046b9174569f6316f4205e3d6e13e814bf7e613e5653a54", [:mix], [], "hexpm", "4ac6a24a33f61347a2714c982a5f84aa6207641f4de2ad5afde68a8b800da8de"},
"membrane_common_c": {:hex, :membrane_common_c, "0.15.0", "4b6005c562bf025e4a53c95a9646a9f5fa993ac440dd44c1a4d1ea210ec53793", [:mix], [{:membrane_core, "~> 0.12.0", [hex: :membrane_core, repo: "hexpm", optional: false]}, {:shmex, "~> 0.5.0", [hex: :shmex, repo: "hexpm", optional: false]}, {:unifex, "~> 1.0", [hex: :unifex, repo: "hexpm", optional: false]}], "hexpm", "f9584cca9865ed754b8333e362d49d6c449c708d7c87be6c5f7bd5a1d978d6bf"},
"membrane_core": {:hex, :membrane_core, "0.12.5", "098733b1677bd9235a74fc3dabcdff5459d879466c7dc4b862e485c161153947", [:mix], [{:bunch, "~> 1.6", [hex: :bunch, repo: "hexpm", optional: false]}, {:qex, "~> 0.3", [hex: :qex, repo: "hexpm", optional: false]}, {:ratio, "~> 2.0", [hex: :ratio, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "59ecef38a9c184a41810d23dfc77b899717538dd0a177bdbd57383c199f7675b"},
"membrane_core": {:hex, :membrane_core, "0.12.7", "9d3dd564e32768919c1105b4579bd2eef12df7473da5d789185544ae22610e2d", [:mix], [{:bunch, "~> 1.6", [hex: :bunch, repo: "hexpm", optional: false]}, {:qex, "~> 0.3", [hex: :qex, repo: "hexpm", optional: false]}, {:ratio, "~> 2.0", [hex: :ratio, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "321e4009b7068ca04b65daf5c79b8c3772d4286c27d05e50939ec6d9b4d50e59"},
"membrane_file_plugin": {:hex, :membrane_file_plugin, "0.15.0", "ddf9535fda82aae5b0688a98de1d02268287ffc8bcc6dba1a85e057d71c522af", [:mix], [{:membrane_core, "~> 0.12.0", [hex: :membrane_core, repo: "hexpm", optional: false]}], "hexpm", "fa2f7219f96c9e815475dc0d8c238c0a5648012917584756eb3eee476f737ce2"},
"membrane_h264_ffmpeg_plugin": {:hex, :membrane_h264_ffmpeg_plugin, "0.27.0", "4fced15b5791b87758869537770d00b39d103d1239ef7311f4a883e036d83d7b", [:mix], [{:bunch, "~> 1.6", [hex: :bunch, repo: "hexpm", optional: false]}, {:membrane_common_c, "~> 0.15.0", [hex: :membrane_common_c, repo: "hexpm", optional: false]}, {:membrane_core, "~> 0.12.0", [hex: :membrane_core, repo: "hexpm", optional: false]}, {:membrane_h264_format, "~> 0.5.0", [hex: :membrane_h264_format, repo: "hexpm", optional: false]}, {:membrane_raw_video_format, "~> 0.3.0", [hex: :membrane_raw_video_format, repo: "hexpm", optional: false]}, {:ratio, "~> 2.4.0", [hex: :ratio, repo: "hexpm", optional: false]}, {:unifex, "~> 1.1", [hex: :unifex, repo: "hexpm", optional: false]}], "hexpm", "031887921970f793d11bfd2e2ed36ba6c3010b17c61a4702bcf50028431786dc"},
"membrane_h264_format": {:hex, :membrane_h264_format, "0.5.0", "95c1cc00896dab6de322cee3be0c9b0b0840537b4cc49e82a34e901b4e4763f9", [:mix], [], "hexpm", "7b44e0b02d86b45d24699de3c970186dffbca6d51aca80bbed2f6a3fe5c9eba1"},
"membrane_h264_plugin": {:hex, :membrane_h264_plugin, "0.4.1", "73f4019a298091605fc34f21296328cae81d1223991ae4cb1aae96509f6e20b9", [:mix], [{:bunch, "~> 1.4", [hex: :bunch, repo: "hexpm", optional: false]}, {:membrane_core, "~> 0.12.0", [hex: :membrane_core, repo: "hexpm", optional: false]}, {:membrane_h264_format, "~> 0.5.0", [hex: :membrane_h264_format, repo: "hexpm", optional: false]}], "hexpm", "4593d6f43e4a4829dd35c1d7e5405c411b42aa0a11fd0548e337852407ad3118"},
"membrane_h264_plugin": {:hex, :membrane_h264_plugin, "0.6.0", "0ad95da388f3e885fe75d778e2e634854626bd73a6b3bbe1465137cb3299c8cd", [:mix], [{:bunch, "~> 1.4", [hex: :bunch, repo: "hexpm", optional: false]}, {:membrane_core, "~> 0.12.7", [hex: :membrane_core, repo: "hexpm", optional: false]}, {:membrane_h264_format, "~> 0.5.0", [hex: :membrane_h264_format, repo: "hexpm", optional: false]}], "hexpm", "392be4b151cab137f40bba0589e69ac28f53e8dd9687b5e38a465ba2000050be"},
"membrane_mp4_format": {:hex, :membrane_mp4_format, "0.7.0", "0cc33f21dc571b43b4d2db66a056e2b7eecdc7ada71a9e0e923ab7a1554f15f2", [:mix], [], "hexpm", "7653a20e7b0c048ea05ffad6df88249abf4c1b63772c14dee843acffcad6b038"},
"membrane_opus_format": {:hex, :membrane_opus_format, "0.3.0", "3804d9916058b7cfa2baa0131a644d8186198d64f52d592ae09e0942513cb4c2", [:mix], [], "hexpm", "8fc89c97be50de23ded15f2050fe603dcce732566fe6fdd15a2de01cb6b81afe"},
"membrane_opus_plugin": {:hex, :membrane_opus_plugin, "0.17.1", "533d694d8c6f38fbf7f09a514e16037e8980d167899d4c35cb5017b088122ce9", [:mix], [{:bunch, "~> 1.3", [hex: :bunch, repo: "hexpm", optional: false]}, {:membrane_common_c, "~> 0.15.0", [hex: :membrane_common_c, repo: "hexpm", optional: false]}, {:membrane_core, "~> 0.12.3", [hex: :membrane_core, repo: "hexpm", optional: false]}, {:membrane_opus_format, "~> 0.3.0", [hex: :membrane_opus_format, repo: "hexpm", optional: false]}, {:membrane_raw_audio_format, "~> 0.11.0", [hex: :membrane_raw_audio_format, repo: "hexpm", optional: false]}, {:unifex, "~> 1.0", [hex: :unifex, repo: "hexpm", optional: false]}], "hexpm", "8d2bf3d97651f136fd393ce80c099a4f282bbe1dfafde887f8ab18668fd349aa"},
Expand Down
Binary file modified test/fixtures/cmaf/muxed_audio_video/segment_1.m4s
Binary file not shown.
Binary file modified test/fixtures/cmaf/muxed_audio_video/segment_2.m4s
Binary file not shown.
Binary file modified test/fixtures/cmaf/ref_video_segment1.m4s
Binary file not shown.
Binary file modified test/fixtures/cmaf/ref_video_segment2.m4s
Binary file not shown.
9 changes: 5 additions & 4 deletions test/membrane_mp4/demuxer/isom/integration_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ defmodule Membrane.MP4.Demuxer.ISOM.IntegrationTest do

muxing_spec = [
child(:file, %Membrane.File.Source{location: in_path})
|> child(:parser, %Membrane.H264.FFmpeg.Parser{framerate: {30, 1}, attach_nalus?: true})
|> child(:parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: %{framerate: {30, 1}}
})
|> child(:payloader, Membrane.MP4.Payloader.H264)
|> child(:muxer, %Membrane.MP4.Muxer.ISOM{
chunk_duration: Membrane.Time.seconds(1),
Expand Down Expand Up @@ -93,9 +95,8 @@ defmodule Membrane.MP4.Demuxer.ISOM.IntegrationTest do

muxing_spec = [
child(:file_video, %Membrane.File.Source{location: in_video_path})
|> child(:video_parser, %Membrane.H264.FFmpeg.Parser{
framerate: {30, 1},
attach_nalus?: true
|> child(:video_parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: %{framerate: {30, 1}}
})
|> child(:video_payloader, Membrane.MP4.Payloader.H264)
|> child(:muxer, %Membrane.MP4.Muxer.ISOM{
Expand Down
25 changes: 8 additions & 17 deletions test/membrane_mp4/muxer/cmaf/integration_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,8 @@ defmodule Membrane.MP4.Muxer.CMAF.IntegrationTest do
|> child(:audio_parser, %Membrane.AAC.Parser{out_encapsulation: :none})
|> child(:audio_payloader, Membrane.MP4.Payloader.AAC),
child(:video_source, %Membrane.File.Source{location: "test/fixtures/in_video.h264"})
|> child(:video_parser, %Membrane.H264.FFmpeg.Parser{
framerate: {30, 1},
attach_nalus?: true,
max_frame_reorder: 0
|> child(:video_parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: %{framerate: {30, 1}}
})
|> child(:video_payloader, Membrane.MP4.Payloader.H264),
child(:cmaf, %Membrane.MP4.Muxer.CMAF{
Expand Down Expand Up @@ -185,10 +183,10 @@ defmodule Membrane.MP4.Muxer.CMAF.IntegrationTest do
|> child(:audio_payloader, Membrane.MP4.Payloader.AAC),
# NOTE: keyframes are every 2 seconds
child(:video_source, %Membrane.File.Source{location: "test/fixtures/in_video_gop_30.h264"})
|> child(:video_parser, %Membrane.H264.FFmpeg.Parser{
framerate: {30, 1},
attach_nalus?: true,
max_frame_reorder: 0
|> child(:video_parser, %Membrane.H264.Parser{
# TODO: This test fails without `add_dts_offset: false` and it seems like a bug
# in the muxer
generate_best_effort_timestamps: %{framerate: {30, 1}, add_dts_offset: false}
})
|> child(:video_payloader, Membrane.MP4.Payloader.H264),
child(:cmaf, %Membrane.MP4.Muxer.CMAF{
Expand Down Expand Up @@ -338,15 +336,8 @@ defmodule Membrane.MP4.Muxer.CMAF.IntegrationTest do

parser =
case type do
:audio ->
%Membrane.AAC.Parser{out_encapsulation: :none}

:video ->
%Membrane.H264.FFmpeg.Parser{
framerate: {30, 1},
attach_nalus?: true,
max_frame_reorder: 0
}
:audio -> %Membrane.AAC.Parser{out_encapsulation: :none}
:video -> %Membrane.H264.Parser{generate_best_effort_timestamps: %{framerate: {30, 1}}}
end

payloader =
Expand Down
26 changes: 16 additions & 10 deletions test/membrane_mp4/muxer/isom/integration_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@ defmodule Membrane.MP4.Muxer.ISOM.IntegrationTest do

structure = [
child(:file, %Membrane.File.Source{location: "test/fixtures/in_video.h264"})
|> child(:parser, %Membrane.H264.FFmpeg.Parser{framerate: {30, 1}, attach_nalus?: true})
|> child(:parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: %{framerate: {30, 1}}
})
|> child(:payloader, Membrane.MP4.Payloader.H264)
|> child(:muxer, %Membrane.MP4.Muxer.ISOM{chunk_duration: Time.seconds(1)})
|> child(:sink, %Membrane.File.Sink{location: out_path_for("video")})
Expand Down Expand Up @@ -97,9 +99,8 @@ defmodule Membrane.MP4.Muxer.ISOM.IntegrationTest do

structure = [
child(:video_file, %Membrane.File.Source{location: "test/fixtures/in_video.h264"})
|> child(:video_parser, %Membrane.H264.FFmpeg.Parser{
framerate: {30, 1},
attach_nalus?: true
|> child(:video_parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: %{framerate: {30, 1}}
})
|> child(:video_payloader, Membrane.MP4.Payloader.H264),
child(:audio_file, %Membrane.File.Source{location: "test/fixtures/in_audio.aac"})
Expand All @@ -123,7 +124,9 @@ defmodule Membrane.MP4.Muxer.ISOM.IntegrationTest do

structure = [
child(:file, %Membrane.File.Source{location: "test/fixtures/in_video.h264"})
|> child(:parser, %Membrane.H264.FFmpeg.Parser{framerate: {30, 1}, attach_nalus?: true})
|> child(:parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: %{framerate: {30, 1}}
})
|> child(:payloader, Membrane.MP4.Payloader.H264)
|> child(:muxer, %Membrane.MP4.Muxer.ISOM{
chunk_duration: Time.seconds(1),
Expand Down Expand Up @@ -161,9 +164,8 @@ defmodule Membrane.MP4.Muxer.ISOM.IntegrationTest do

structure = [
child(:video_file, %Membrane.File.Source{location: "test/fixtures/in_video.h264"})
|> child(:video_parser, %Membrane.H264.FFmpeg.Parser{
framerate: {30, 1},
attach_nalus?: true
|> child(:video_parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: %{framerate: {30, 1}}
})
|> child(:video_payloader, Membrane.MP4.Payloader.H264),
child(:audio_file, %Membrane.File.Source{location: "test/fixtures/in_audio.aac"})
Expand All @@ -185,7 +187,9 @@ defmodule Membrane.MP4.Muxer.ISOM.IntegrationTest do
test "raise when stream format's inband_parameters are not used" do
structure = [
child(:file, %Membrane.File.Source{location: "test/fixtures/in_video_vp.h264"})
|> child(:parser, %Membrane.H264.FFmpeg.Parser{framerate: {30, 1}, attach_nalus?: true})
|> child(:parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: %{framerate: {30, 1}}
})
|> child(:payloader, Membrane.MP4.Payloader.H264)
|> child(:muxer, %Membrane.MP4.Muxer.ISOM{
chunk_duration: Time.seconds(1),
Expand All @@ -209,7 +213,9 @@ defmodule Membrane.MP4.Muxer.ISOM.IntegrationTest do

structure = [
child(:file, %Membrane.File.Source{location: "test/fixtures/in_video_vp.h264"})
|> child(:parser, %Membrane.H264.FFmpeg.Parser{framerate: {30, 1}, attach_nalus?: true})
|> child(:parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: %{framerate: {30, 1}}
})
|> child(:payloader, %Membrane.MP4.Payloader.H264{parameters_in_band?: true})
|> child(:muxer, %Membrane.MP4.Muxer.ISOM{
chunk_duration: Time.seconds(1),
Expand Down
4 changes: 3 additions & 1 deletion test/membrane_mp4/payloader_depayloader_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ defmodule Membrane.MP4.PayloaderDepayloaderTest do

spec = [
child(:file, %Membrane.File.Source{location: in_path})
|> child(:parser, %Membrane.H264.FFmpeg.Parser{framerate: {30, 1}, attach_nalus?: true})
|> child(:parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: %{framerate: {30, 1}}
})
|> child(:payloader, Membrane.MP4.Payloader.H264)
|> child(:depayloader, Membrane.MP4.Depayloader.H264)
|> child(:sink, %Membrane.File.Sink{location: out_path})
Expand Down

0 comments on commit 699f4ac

Please sign in to comment.