Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
-5 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 139

Ошибка при воспроизведении видео

13.06.2017, 12:58. Показов 3064. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Есть список видео, которое размещается в ЛИстБоксе(формируется при загрузке программы).
Проигрываем через MediaPlayer.
Все видео файлы одного формата(.avi)
Когда список закончился - начинаем заново.

При запуске программы - все хорошо. Программа может проработать полчаса, а может весь день.
Но в какойто момент начинает вылетать ошибка :
FFdshow error
Failed to load ffmpeg.dll!
[OK]
После чего видео не проигрывается уже.

Из-за чего может быть ошибка. часть кода, отвечающего за видео


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
procedure TForm1.Videoplayg(Sender: TObject);
 var
 WeiToHei:double;
 Hei,Wei,TopHei:integer;
 AudioSVideo: Boolean;
  begin
  //определить количество строк в листе. Если меньше 1, то не стартуем
   //showmessage(inttostr(  Listbox1.ItemIndex)+' - '+inttostr(  Listbox1.Items.Count));
   if Listbox1.Items.Count>0 then
           begin
       if (listbox1.ItemIndex<0) then
       begin
     //    showmessage('Итем меньше 0, тогда 0');
                     listbox1.itemindex:=0;
                     // showmessage(inttostr(  Listbox1.ItemIndex)+' - '+inttostr(  Listbox1.Items.Count));
       end
 
       else
            begin
       if (listbox1.ItemIndex< (ListBox1.Items.Count-1))  then
       begin
    //    showmessage('Итем меньше общего количества, то итем+1');
                Listbox1.itemIndex:=listbox1.itemindex+1;
       end
        else
        begin
     //          showmessage('Не меньше 0 и не меньше количества (равно наверное), тогда 0');
        listbox1.itemindex:=0;
        end;
            end;
 
 // showmessage('Строка:' + inttostr(Listbox1.ItemIndex)+ ' из:'+ inttostr(Listbox1.Items.Count));
 
    try
    //WeiToHei:= infoWidth(listbox1.items.Strings[listbox1.itemindex]);
    WeiToHei:=2;
    except
    Append(ErrorFile);
  WriteLn(ErrorFile, timetostr(time)+' - ошибка в считывании файла:'+listbox1.items.Strings[listbox1.itemindex]);
 CloseFile(ErrorFile);
    end;
//showmessage(floattostr(WeiToHei));
Wei:=panelvideo.Width;
Hei:=round(Wei/WeiToHei);
TopHei:=round((Panelvideo.Height-Hei)/2);
//showmessage('All Research');
 
 
          //  infoWidth(listbox1.items.Strings[listbox1.itemindex]);
              if listbox1.Items.Count>0 then
       begin
      // Showmessage('Количество больше 0');
         if FileExists(listbox1.items.Strings[listbox1.itemindex])then
          begin
           //  Showmessage('файл найден ');
            try
      SoundOnMediaPl:=true;
 
 
       MediaPlayer1.filename:= listbox1.items.Strings[listbox1.itemindex];
       MediaPlayer1.Open;
       MediaPlayer1.DisplayRect :=Rect(0,TopHei,wei,Hei);// PanelVideo.ClientRect;
       MediaPlayer1.Play;
           Append(SVideoFile);
          WriteLn(SVideoFile, timetostr(time)+': Запустили '+ listbox1.items.Strings[listbox1.itemindex]);
           WriteLn(SVideoFile, 'с разрещением: '+ inttostr(Wei)+'x'+inttostr(Hei)+' и пропорцией:'+floattostr(Weitohei));
          CloseFile(SVideoFile);
 
 
                except
  Append(ErrorFile);
  WriteLn(ErrorFile, timetostr(time)+' - ошибка в проигрывании:'+listbox1.items.Strings[listbox1.itemindex]);
 CloseFile(ErrorFile);
 
              Videoplayg(self);
            end;
            AudioSVideo:=false;
            SoundPlayerOff(AudioSVideo);
           end//
           else
           begin
           //showmessage('Нет видосов в базе');
           Append(ErrorFile);
  WriteLn(ErrorFile, timetostr(time)+' - Не найден файл:'+listbox1.items.Strings[listbox1.itemindex]);
 CloseFile(ErrorFile);
            Videoplayg(self);
           end;
           //  SoundOnMediaPl:=true;
       //   showmessage('=%d',
        //  [
          // Mediaplayer1.DisplayRect.Left,
                 // Mediaplayer1.DisplayRect.Top,
                 // Mediaplayer1.DisplayRect.Right,
           //       Mediaplayer1.DisplayRect.Bottom]
           //       );
           end;
 
   end
   else
   begin
    Append(ErrorFile);
  WriteLn(ErrorFile, timetostr(time)+' - ошибка.Плейлист пуст');
 CloseFile(ErrorFile);
   end;
  end;
сама процедура запускается из MediaPlayer1Notify - Videoplayg(Self);

Сделал много проверок на ошибки - в Лог файле чисто - ошибок нет.
Если отключаем Эту процедуру, то ошибка НЕ возникает(ну и видео не крутится соответственно.
Файлы логов объявлены ранее. И нормально заполняются на протяжении всей программы
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.06.2017, 12:58
Ответы с готовыми решениями:

Ошибка при воспроизведении BASS
Здравствуйте, наверное все часто при создании плеера на BASS сталкивались с проблемой, когда в имени файла в плейлисте стоят непонятные...

Мерцания при воспроизведении gif
Здравствуйте! Подскажите пожалуйста, как избавиться от мерцания при воспроизведении gif? https://youtu.be/U8EBtb74HWs

Как поставить на паузу видео при воспроизведении второго видео
Как поставить на паузу видео при воспроизведении второго видео: &lt;video id=&quot;movies1&quot; onmouseover=&quot;this.play()&quot;...

25
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
18.06.2017, 07:33
Студворк — интернет-сервис помощи студентам
нет смысла гадать
делайте примитивный пример
выкладывайте код
0
-5 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 139
19.06.2017, 23:22  [ТС]
Проблема с утечкой решилась как то сама собой.
загрузил новый билд программы, и она перестала подсасывать оперативку.
Появился другой интересный глюк:

Решил конвертировать видео в wmv. Красиво качественно. Запускается. после пары кругов начинает как бешеннный Включает видео на 1 секунду и сразу следующее.
Вопрос стандартный. В чем проблема?
У меня в коде стоит "переход на новый только после окончания старого".
Каким образом уже на 1ой секунде wmv файлы кричат что они закончились?
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
20.06.2017, 06:36
к сожалению, ответы там же, у разработчиков кодека ((
0
-5 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 139
20.06.2017, 06:55  [ТС]
krapotkin,
Все , я понял. Спасибо Вам огромное. Буду экспериментировать с кодеками.

mpg4 вышло тоже самое, что и с wmv. Через полчаса работы - начала скакать.
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
20.06.2017, 08:46
вывод - никогда не использовать TMediaPlayer из стандартной поставки
это как 20 лет назад я понял, с тех пор ничего не изменилось
Есть вероятность, что FMX версия немного получше должна себя вести, т.к. там немного по-другому все это сделано
попробуйте
0
-5 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 139
20.06.2017, 16:53  [ТС]
krapotkin,
в MediaPlayer1Notify(Sender: TObject);
Заменил проверку окончания видеоролика с
MediaPlayer1.Mode = mpStopped
на
NotifyValue = nvSuccessful

И уже сутки, вроде как стабильностью пахнет(крутится покатолько один видеоролик, для теста).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.06.2017, 16:53

Замедление видео при воспроизведении видео через HDMI
Суть. уже больше года телевизор подключен к компу в качестве доп. моника для просмотра фильмов, все было отлично, но недавно я попробовал...

Реклама при воспроизведении видео
Приветствую Вас. с недавних пор что то пошло не так, перестало воспроизводиться видео на многих сайтах(не на всех). на одних в никакую не...

При воспроизведении видео нету изображения, при этом звук есть
Здравствуйте! При воспроизведении видео нету изображения, при этом звук есть. Видео работает в браузерах, в видео конверторах, так же в...

при воспроизведении видео HD наблюдаются квадраты
Здравствуйте.Подключал комп к современному телевизору через VGA-VGA,а потом s-video(переходник) - &quot;тюльпаны&quot;.Все отключил.Потом...

Компьютер виснет при воспроизведении видео
Здравствуйте! У меня проблема , компьютер виснет намертво при воспроизведении видео в браузере , на компьютере с помощью видеопрограм ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru