itsok

itsok

Can't play videos recorded with `membrane_camera_capture_plugin`

I’m trying to use Membrane.CameraCapture to record a video from my computer camera.

When I clone the package repo and run the tests mix test --include manual, I can play the video the test records. Everything seems to work as expected.

But when I try to use the child specification defined in the test in a standalone example, I can’t play the output video.

To reproduce the problem, save the following code into a file example.exs.

example.exs

Mix.install([
  {:membrane_camera_capture_plugin, "~> 0.4.0"},
  {:membrane_h264_ffmpeg_plugin, "~> 0.21"},
  {:membrane_file_plugin, "~> 0.10"},
  {:membrane_ffmpeg_swscale_plugin, "~> 0.10"}
])

defmodule VideoRecorder do
  use Membrane.Pipeline

  @impl true
  def handle_init(_ctx, _options) do
    structure =
      child(:source, Membrane.CameraCapture)
      |> child(:converter, %Membrane.FFmpeg.SWScale.PixelFormatConverter{format: :I420})
      |> child(:encoder, Membrane.H264.FFmpeg.Encoder)
      |> child(:sink, %Membrane.File.Sink{location: "output.h264"})

    {[spec: structure], %{}}
  end
end

{:ok, _supervisor_pid, pipeline_pid} = Membrane.Pipeline.start_link(__MODULE__, [], name: VideoRecorder)
Process.sleep(2000)
VideoRecorder.terminate(pipeline_pid)

Then run the above file with elixir example.exs, and open the outputted video with ffplay output.h264.

Instead of seeing a video, I get the following warning…

[h264 @ 0x15b00a190] Format h264 detected only with low score of 1, misdetection possible!
[h264 @ 0x15b00a190] Could not find codec parameters for stream 0 (Video: h264, none): unspecified size
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options

Any ideas what I’m missing?

Most Liked

jerzywilczek

jerzywilczek

Membrane Core Team

I believe that you need to return the playback: :playing action from your handle_init after the spec action, like this:

{[spec: structure, playback: :playing], %{}}

Last Post!

itsok

itsok

That was it! Thank you for your help.

Where Next?

Popular in Discussions Top

jesse
Hi everyone, I hesitated to post this here because I don’t want you to think I’m spamming, but I’ve been working on a Platform-as-a-Serv...
New
mbenatti
Following https://github.com/tbrand/which_is_the_fastest |> https://raw.githubusercontent.com/tbrand/which_is_the_fastest/master/imgs...
New
und0ck3d
Hello everyone! A few days ago I’ve created a topic here about how people were creating CMSs with Elixir and Phoenix. I’ve been studying...
New
acrolink
How does the two languages compare when it comes to server side application development? Any experiences or ideas? Thank you.
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
crispinb
On reading dhh’s latest The One Person Framework it strikes me that Phoenix with LiveView is already pretty much this. However, never hav...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

Other popular topics Top

JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54921 245
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 49084 226
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement