Всем доброго времени суток. Не получается использовать ffmpeg через socksproxy.
Запускаю следующим образом:
ffmpeg -http_proxy socks5:127.0.0.1:2517 -i 192.168.1.20/test/playlist.m3u8?id=video1 -c:v copy -c:a aac -bsf:a aac_adtstoasc -hls_time 2 -hls_list_size 5 -hls_wrap 5 -start_number 1 -y -f hls /tmp/hls/test/playlist.m3u8
Проксю socks5:127.0.0.1:2517
для ffmpeg пробовал прописывать по-разному, убирая socks5 и http по очереди, и добавляя их, играл с кавычками, но всё в итоге приводило к тому, что ffmpeg нормально отрабатывает, получает чанки из плейлиста, но не через прокси, а напрямую.
Socks5 настроил с помощью ssh, также настраивал и с помощью Dante. Конкретно с прокси проблем нет, она отрабатывает как положено, проверял через curl, а ffmpeg почему-то этот параметр игнорирует.
После долгого гугления нашёл много вопросов по этой теме, оставленных без ответа, где-то даже писали, что ffmpeg через socks работать не умеет.
При запуске ffmpeg с дебагом видно, что флаг он прочитал:
Reading option '-http_proxy' ... matched as AVOption 'http_proxy' with argument 'socks5:127.0.0.1:2517'
Также пробовал 3 разных сборки ffmpeg, но картина везде одинаковая.
Судя по всему, ffmpeg и правда не умеет работать через socks, и, если это так, то может чем-то можно получать чанки из плейлиста и передавать их в FFmpeg - некая прослойка между ffmpeg и источником видео?
Обращу внимание на то, что нужна именно socksproxy, т.к. источник видео у меня всегда разный. Ссылка на входе для ffmpeg 192.168.1.20/test/playlist.m3u8?id=video1
заворачивается на php-скрипт, который по id определяет какой плейлист отдать в ffmpeg, поэтому nginx или haproxy для этих целей не подойдут, т.к. заранее я не могу знать по какому пути мне нужно будет проксировать ffmpeg.