Я использую Accord.Video.FFMPEG
для создания видео из 200 изображений с кодеком H264. Почему-то видео очень плохого качества. Его размер составляет менее 1 МБ. При выборе VideoCodec.Raw
качество высокое, но меня не устраивает огромный размер.
я делаю что-то вроде этого
using (var vFWriter = new VideoFileWriter())
{
vFWriter.Open(video_name, 1920, 1080, 24, VideoCodec.H264);
for (int i = 0; i < 200; ++i)
{
var img_name_src = ...
using (Bitmap src_jpg = new Bitmap(img_name_src))
{
vFWriter.WriteVideoFrame(src_jpg);
}
}
vFWriter.Close();
}
При запуске программы появляются сообщения:
[swscaler @ 06c36d20] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 06e837a0] deprecated pixel format used, make sure you did set range correctly
[avi @ 06c43980] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.
[avi @ 06c43980] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Не знаю, влияют ли они на что-то.
Так выглядит 1 кадр:
Это кадр из видео:
Как это исправить?
Есть ли другой способ в С# создать видео из отдельных кадров?
Process
и передать ему (каналу) растровые данные. См. также stackoverflow.com/a/13777166/2057709, например, параметры FFmpeg. - person VC.One   schedule 17.10.2019