Или не заморачиваться и сделать это ffmpeg?
Я делал порт на Rust, годный протокол ноды и байндинги к ffmpeg у Rust присутствуют.
Наверное @maxlapshin знает
ffmpeg -i файл.avi файл.mp3
эт то понятно. В итоге пока сделал через ffmpex таким образом: command = FFmpex.new_command |> add_input_file(file_path) |> to_stdout() |> add_file_option(option_f("oga")) |> add_file_option(option_vn()) |> add_file_option(option_acodec("libvorbis")) |> add_file_option(option_ar("8000"))
а в чем собственно профит не сделать это через порт или System.cmd
Как я понял, ffmpex собирает опции и нормально управляет командами через rambo
по-моему лишняя работа по переводу опций из командной строки в эликсировский код, и рембо тоже не совсем понятно какой профит предоставляет
Например, он убивает процессы, когда vm вылетает. Или он нормально обрабатывает программы, которые принимают EOF
Поэтому в ffmpex можно запихнуть стрим данных, а в System.cmd нельзя
А можете подсказать как сделать ввод данных из переменной в которой хранятся бинарные данные, чтобы не использовать темп файл. Что-то не понял и судя по гиту эта опция не реализована.
Я не знаю как в ffmpex это сделано, но в ffmpeg это работает примерно так cat video.mp4 | ffmpeg -f mp4 -i pipe: sound.mp3
Обсуждают сегодня