Использование avifil32.dll с большими файлами
Здравствуйте, я использую avifil32.dll чтобы добавить звук в мое видео. Прежде всего, я создал AVIWriter и добавил все свои фотографии (MyAviFile.avi). Затем я создал Api для avifil32.dll и попробуйте создать менеджера
var manager = new AviManager(fileName, true); public AviManager(String fileName, bool open){ Avi.AVIFileInit(); int result; if(open){ //open existing file result = Avi.AVIFileOpen( ref aviFile, fileName, Avi.OF_READWRITE, 0); }else{ //create empty file result = Avi.AVIFileOpen( ref aviFile, fileName, Avi.OF_WRITE | Avi.OF_CREATE, 0); } if(result != 0) { throw new Exception("Exception in AVIFileOpen: "+result.ToString()); } }
и результат был -214567...
Что я уже пробовал:
Я читал, что это из-за моего размера avi-файла (он близок к 4G). И что с ним делать.
А когда я конвертировал свой avi в flv, размер стал почти 20 Мб. Почему мой оригинальный avi слишком велик?
Richard MacCutchan
Посмотрите на код ошибки как на шестнадцатеричное значение, а затем вы можете использовать Google, чтобы узнать, что это значит.
faradey
Это мое возвращаемое значение: -2147204921. Можете ли вы мне помочь, я на самом деле не понимаю, что вы имеете в виду.
Richard MacCutchan
Вам нужно отобразить его в шестнадцатеричном формате, которыйFFFFFFFF800440C7
Фактический код ошибки - это нижняя половина800440C7
Проверьте документацию на наличие кодов ошибок, которые могут быть возвращены из соответствующего вызова API.
Jochen Arndt
То есть AVIERR_ERROR (определяется в центре.ч); универсальный (неизвестная) ошибка Ави.
Так что это не очень помогает. В этом файле также есть забавный комментарий (по крайней мере, в старой версии, которая у меня есть здесь):
// !!! Questions to be answered: // How can you get a string form of these errors? // Which of these errors should be replaced by errors in SCODE.H?
faradey
thanx много, это очень полезно, но это все, что я нахожу:
AVIERR_ERROR = HRESULT($800440C7);
и нет никакого описания, что делать(((
Richard MacCutchan
Извините, но вам придется обратиться за дополнительной информацией на специализированный форум или в Microsoft.
faradey
Я решил свою проблему и могу сказать:
Я использую C# и создал aviWriter с помощью AForge.Video.VFW.AVIWriter так и не установил кодек. Но теперь я скачиваю кодек (XVid) на свой ноутбук и устанавливаю его имя в конструкторе, и теперь он работает))
Спасибо всем вам, с наилучшими пожеланиями