Исправить давний баг в ffmpeg, выложить в open source (С++)

3 400 руб. за проект • наличный расчёт, безналичный расчёт, электронные деньги
04 декабря 2015, 08:43 • 2 отклика • 87 просмотров
Описание проблемы:
1) ffmpeg 2.8.3 некорректно отображает русскоязычные человекочитаемые friendly_name и альтернативные unique_name имена микрофонов. Например: http://superuser.com/questions/583508/ffmpeg-strea...
2) Невозможно обратиться к устройству, имя которого задано кириллицей, например вызов ffmpeg -f dshow -ar 44100 -s 640x480 -i video=@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{4EA6930A-2C8A-4AE6-A561-56E4B5044439}:audio=@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\Микрофон (2- Webcam C170) приведёт к ошибке: Could not set video options video=@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\\{4EA6930A-2C8A-4AE6-A561-56E4B5044439}:audio=@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\\Микрофон (2- Webcam C170): Input/output error

Предлагаемое решение:
1) Добавить поддержку русскоязычных названий микрофонов
2) Добавить обращение к видео/аудио устройствам по индексу, аналогично реализации для OS X/AVFoundation: http://trac.ffmpeg.org/wiki/Capture/Webcam

Возможная техническая реализация:
В файле https://github.com/FFmpeg/FFmpeg/blob/master/libav...

  • в строке 132 исправить функцию dup_wchar_to_utf8 так, чтобы она возвращала корректное наименование устройства в кириллице (CP1251)

  • в строке 1011 расширить функцию parse_device_name так, чтобы она принимала на вход индексы устройств (в формате v:a или video=v:audio=a где v и а индексы видео и аудио устройств, в порядке отображаемом при вызове команды ffmpeg -list_devices true -f dshow -i dummy ), а возвращала их имена в формате unique_name (см. строки 245-257)


Предоставить сборку для Windows, после тестирования и приёмки отправить патч в основной репозиторий ffmpeg: http://ffmpeg.org/developer.html#Submitting-patche...