lib/exstream.ex
defmodule Exstream do
def get_closest_packet_to_byte(packets, byte) do
Enum.min_by(packets, fn x -> abs(String.to_integer(x["pos"]) - byte) end)
end
def get_packets({ result, 0 }) do
result
|> Jason.decode!()
|> Map.get("packets")
end
def probe_for_packets(file) do
System.cmd("ffprobe", [
"-i", file,
"-show_entries", "packet=pos,pts_time,flags",
"-select_streams", "v",
"-of", "json",
"-v", "0"
])
|> get_packets()
end
end