Fix ffmpeg framegrabs with Exile
This commit is contained in:
parent
8298b326a7
commit
54ff7234b9
1
changelog.d/framegrabs.fix
Normal file
1
changelog.d/framegrabs.fix
Normal file
@ -0,0 +1 @@
|
||||
Video framegrabs were not working correctly after the change to use Exile to execute ffmpeg
|
@ -40,12 +40,14 @@ defmodule Pleroma.Helpers.MediaHelper do
|
||||
end
|
||||
|
||||
# Note: video thumbnail is intentionally not resized (always has original dimensions)
|
||||
@spec video_framegrab(String.t()) :: {:ok, binary()} | {:error, any()}
|
||||
def video_framegrab(url) do
|
||||
with executable when is_binary(executable) <- System.find_executable("ffmpeg"),
|
||||
{:ok, env} <- HTTP.get(url, [], pool: :media),
|
||||
{:ok, pid} <- StringIO.open(env.body) do
|
||||
body_stream = IO.binstream(pid, 1)
|
||||
|
||||
result =
|
||||
Exile.stream!(
|
||||
[
|
||||
executable,
|
||||
@ -62,6 +64,8 @@ defmodule Pleroma.Helpers.MediaHelper do
|
||||
stderr: :disable
|
||||
)
|
||||
|> Enum.into(<<>>)
|
||||
|
||||
{:ok, result}
|
||||
else
|
||||
nil -> {:error, {:ffmpeg, :command_not_found}}
|
||||
{:error, _} = error -> error
|
||||
|
Loading…
Reference in New Issue
Block a user