Рейтинг:
0
Sergey Alexandrovich Kryukov
Лучший код, который я знаю, - это FFmpeg или libavcodec: http://en.wikipedia.org/wiki/Ffmpeg[^],
http://ffmpeg.org/[^],
http://en.wikipedia.org/wiki/Libavcodec[^],
http://libav.org/[^].
В обоих случаях вы можете получить бесплатные утилиты с открытым исходным кодом, которые могут сделать почти все, включая сборку вашего видео из кадров.
Теперь, как использовать его программно в приложении .NET? Во-первых, вы можете использовать доступную утилиту, запустив ее с помощью System.Diagnostics.Process.Start
:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx[^].
Если этого недостаточно, вы можете обернуть библиотеку в сборку .NET самостоятельно или найти подходящую оболочку. Пожалуйста, смотрите:
http://www.ffmpeg-csharp.com/[^],
http://sourceforge.net/projects/sharpffmpeg/[^],
http://vbffmpegwrapper.codeplex.com/[^].
В конце концов, попробуй найти еще: http://bit.ly/VpboUJ[^].
Если вы хотите работать с такой оболочкой самостоятельно, но не знаете как, задайте вопрос, я дам вам основные идеи (используя проект P/Invoke или C++/CLI "mixed-mode").
Удачи,
—СА
liaoyuandeyehuo
Я думаю, что DirectX быстрее, чем GDI или другой способ.Мой язык-VC;ОС-windows 7.я пытаюсь написать проект, чтобы захватить окно,добавить что-то в него,преобразовать в видео,а затем отправить его в интернет в режиме реального времени.Но я не знаю, как преобразовать буферы в видео, Кул покажет мне способ?
Sergey Alexandrovich Kryukov
Хорошо, спасибо, вы можете просто и непосредственно использовать библиотеку, которую я рекомендую в вашем коде. Или просто запустите утилиту FFmpeg. См. его документацию.
—СА
dharanidharan17
Как вы захватили окно ? я также должен сделать то же самое, что и вы. Так что помоги мне
Sergey Alexandrovich Kryukov
Извините, я не понимаю. Какое окно я захватил? Что вы имеете в виду?
—СА
Member 13074683
есть ли способ указать количество кадров, которые я хочу ?
Например, если я хочу разрезать видео на 59 кадров, но продолжительность видео изменчива из-за fpsdrop, можно ли указать, что я хочу, чтобы видео было одинаково разрезано на 59 изображений?
Спасибо