Кто-нибудь знает хороший способ перекодирования видео в реальном времени (целевые форматы: 3GP s263 AMR узкополосный и MP4 mp4v mp4a, но не в одно и то же время, конечно. Входные файлы будут WMV, но чем больше входных данных форматы поддерживаются лучше)?
В настоящее время мы выполняем асинхронную обработку с использованием службы C #, которая вызывает командную строку ffmpeg, но идея сделать это для синхронного запроса является немного неоптимальной, поскольку пользователь в конечном итоге ждет некоторое время, прежде чем начнется воспроизведение ( Хотя, если это лучший сценарий, дайте мне знать, и я думаю, что я буду жить с этим).
Было бы замечательно, если бы мы могли одновременно обслуживать файл и сохранять его (чтобы мы могли сохранить его для будущих запросов), но если бы мы не могли этого сделать, это не было бы катастрофой.
Как член сообщества, я бы предпочел избегать потокового решения, поскольку меньшее количество устройств будет поддерживать его, но если нет хорошего способа сделать то, что я хочу, я бы хотел услышать альтернативы, даже если они связаны с потоковой передачей.
Обновление
Просто чтобы вы, ребята, были в курсе того, к чему я клонил, я сейчас играю с идеей написать оболочку, которая обращается непосредственно к DLL-файлам FFmpeg, а не к exe-файлу, и начинает думать, что я могу быть я могу получить функциональность, которую я использую после этого (перехват данных постепенно, а не после того, как все будет сделано, может приблизить меня к достаточному уровню реального времени).
Все еще обсуждаем, будет ли это работать, и пытаемся найти хорошие примеры того, как это сделать (даже те, которые написаны на c, а не на c #, потому что это покажет, как взаимодействовать с DLL).