Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
8 / 8 / 0
Регистрация: 13.01.2013
Сообщений: 177

Написанный проигрыватель не показывает видео файлы

24.05.2013, 10:07. Показов 2521. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня следующая проблема... проигрыватель, написанный на c++ builder, не показывает видео файлы, вместо этого он пишет, что видео файл не доступен и не найдена программа распаковки "vids:XVID". Что странно, ещё месяц назад видео файлы отображались вполне корректно.
Может кто подскажет в чём дело.
Я думаю, что проблема в кодеках. И если так, то у меня ещё один вопрос: как сделать так, чтобы при переносе программы на другой компьютер она сохранила свою работоспособность?

Проигрыватель в архиве.
Вложения
Тип файла: rar DVD Player.rar (379.0 Кб, 19 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.05.2013, 10:07
Ответы с готовыми решениями:

Проигрыватель WMP, воспроизводение видео в формате mp4
Надо что бы воспроизводилось видео с разрешением .mp4 , стандартный проигрыватель воспроизводит...

Проигрыватель видео
Здраствуйте. хотел попросить помощи . Проблема такова : пишу по методичке прогу для проигрывания...

Переводить числа, написанные словами, в числа, написанные цифрами
using System; using System.Collections.Generic; using System.Text; namespace StringExample {...

20
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
24.05.2013, 10:14
TMediaPlayer - не найдена программа распаковки
2
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
24.05.2013, 10:15
Цитата Сообщение от The_Prophet Посмотреть сообщение
думаю, что проблема в кодеках
- правильно думаете.
Компиляция программы под С++ Builder, чтобы работала на других компьютерах
1
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
24.05.2013, 12:50
проблема в кодеках. И если так, то у меня ещё один вопрос: как сделать так, чтобы при переносе программы на другой компьютер она сохранила свою работоспособность?
таскать кодеки с собой и перейти на DirectShow c ручным построением графа.
0
8 / 8 / 0
Регистрация: 13.01.2013
Сообщений: 177
25.05.2013, 11:08  [ТС]
С кодеками проблему решил, у меня на компьютере видео отображается.
Теперь описал бы кто-нибудь последовательность действий, для того чтобы видео отображалось и на других компьютерах.
dll файлы кодеков в папку проекта закинул - не помогло. Пишет, что не найдена программа распаковки.
Скомпилировал проект так как написано в инструкции по компиляции проекта, чтобы работал на других компьютерах - не помогло.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.05.2013, 11:43
Цитата Сообщение от The_Prophet Посмотреть сообщение
не помогло
и что пишет?
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
25.05.2013, 11:47
dll файлы кодеков в папку проекта закинул - не помогло.
обычно AX. Но, впрочем, СOM-интерфейсы регистрировать нужно, а не просто с собой таскать.
0
8 / 8 / 0
Регистрация: 13.01.2013
Сообщений: 177
25.05.2013, 11:58  [ТС]
на самом деле и AX файлы закидывал
com файлов не нахожу в месте установки кодеков
а пишет всё то же - не найдена программа распаковки vids:XVID
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
25.05.2013, 12:10
...вы не поняли, это интерфейс, через который и взаимодействуют кодеки.

Просто закинуть AX или DLL недостаточно, надо регистрировать их в системе, через regsvr32 или же через программный вызов интерфейса и прописывание в реестре. К примеру, для PMFplay H.264 Decoder:
Code
1
2
regsvr32 /s empgdmx.ax
regsvr32 /s h264dec_dmo.dll
0
8 / 8 / 0
Регистрация: 13.01.2013
Сообщений: 177
25.05.2013, 12:50  [ТС]
Я всё ровно не понимаю что мне нужно сделать
Там несколько десятков AX и dll файлов, и их имена абсолютно разные. Если я хочу добавить в свою программу кодек только на avi формат, то как мне узнать какому AX файлу соответствует какой-либо dll файл? Как я понял они идут парами.
Вы могли бы дать ссылку на статью по соответствующей теме, чтобы я мог самостоятельно разобраться
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
25.05.2013, 13:12
Там несколько десятков AX и dll файлов, и их имена абсолютно разные
а кому сейчас легко? Напишите батник, регистрирующий все подряд, что в вашей папке, это достаточно просто: получаем список файлов, по циклу регим.

Если я хочу добавить в свою программу кодек только на avi формат
не путайте теплое с мягким, таким способом вы лишь регистрируете COM-интерфейс кодека в системе.

Но по сборке DS-фильтров есть хорошая статья Филиппова "Сборка DS-фильтров" (впрочем, это уже следующий шаг)
0
8 / 8 / 0
Регистрация: 13.01.2013
Сообщений: 177
25.05.2013, 17:58  [ТС]
хм... спасибо, попробуем
ещё один момент - как правильно регистрировать эти интерфейсы? Как я понимаю приведённый вами пример не в юните проекта надо прописывать.
На самом деле мне больше подойдёт именно программная регистрация.
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
25.05.2013, 20:56
...а разницы особой нет: при использовании системной regsvr32 вы можете вызывать ее консоль через CreateProcess() или ShellExecute(), необязательно ваять внешний батник, а также чисто программный вызов интерфейсов через DllRegisterServer() http://msdn.microsoft.com/en-u... s.85).aspx.

Кстати, имхо использую вот такой хак в файле прожекта перед инициализацией приложения, использующего ActiveX (он же объект COM из Flash.ocx):
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
// автоматом регистрируем OCX
// [url]http://raxp.radioliga.com[/url]
 
program Project1;
 
uses
  windows,
  Forms,
  sysutils,
  Unit1 in 'Unit1.pas' {Form1};
 
{$R *.res}
 
function ExecAndWait(FileName, Params: String): boolean;
const WinState = SW_HIDE;
var
  StartInfo: TStartupInfo; 
  ProcInfo: TProcessInformation; 
  CmdLine: ShortString;
begin 
  CmdLine := '"' + Filename + '" ' + Params; 
  FillChar(StartInfo, SizeOf(StartInfo), #0); 
  with StartInfo do 
  begin 
    cb := SizeOf(StartInfo); 
    dwFlags := STARTF_USESHOWWINDOW; 
    wShowWindow := WinState; 
  end; 
  Result := CreateProcess(nil, PChar( String( CmdLine ) ), nil, nil, false, 
                          CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, 
                          PChar(ExtractFilePath(Filename)),StartInfo,ProcInfo); 
  if Result then 
  begin 
    WaitForSingleObject(ProcInfo.hProcess, INFINITE); 
    { Free the Handles } 
    CloseHandle(ProcInfo.hProcess); 
    CloseHandle(ProcInfo.hThread); 
  end; 
end;
 
procedure RegisterOCX(name: string);
type
  TRegFunc = function : HResult; stdcall;
var
  ARegFunc : TRegFunc;
  aHandle  : THandle;
  ocxPath  : string;
begin
 try
  ocxPath := ExtractFilePath(paramstr(0)) + name;
  aHandle := LoadLibrary(PChar(ocxPath));
  if aHandle <> 0 then
  begin
    ARegFunc := GetProcAddress(aHandle,'DllRegisterServer');
    if Assigned(ARegFunc) then
    begin
      ExecAndWait('regsvr32','/s ' + ocxPath);
    end;
    FreeLibrary(aHandle);
  end;
 except end;
end;
 
begin
  RegisterOCX('swflash.ocx');
 
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Вложения
Тип файла: zip raxp_работа с FLASH.OCX.zip (4.34 Мб, 5 просмотров)
1
8 / 8 / 0
Регистрация: 13.01.2013
Сообщений: 177
27.05.2013, 12:37  [ТС]
Как же это проблемно всё...
почти всю часть кода перевёл на с++, не получается только с этим моментом:
Delphi
1
2
ARegFunc := GetProcAddress(aHandle,'DllRegisterServer');
    if Assigned(ARegFunc)
ну и понятное дело проблемы с переводом этой части
Delphi
1
2
3
4
5
6
type
  TRegFunc = function : HResult; stdcall;
var
  ARegFunc : TRegFunc;
  aHandle  : THandle;
  ocxPath  : string;
Такими темпами проще будет закинуть в установщик проигрывателя и установщик кодеков. Чтобы при установке проекта предлагало поставить и кодеки, ведь цель сделать проигрыватель работоспособным на компьютерах без них.
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
27.05.2013, 12:46
...учите методы вызова и подключения DLL, на форуме есть спецтема на эту тему.
0
8 / 8 / 0
Регистрация: 13.01.2013
Сообщений: 177
27.05.2013, 14:19  [ТС]
Спасибо конечно, но вы бы сразу сказали, что говорите о создании библиотеки)) тогда может и не пришлось бы так долго эту тему вести, потому что меня интересует быстрое решение вопроса. А разбираться с новым для меня разделом сейчас нет времени.
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
27.05.2013, 14:44
Кто?! Я? Создание библиотеки, с какого перепугу? ...не читайте между строк, и взгляните на код повнимательнее, если чего непонятно - копируем, заходим в MSDN и читаем описание.
0
8 / 8 / 0
Регистрация: 13.01.2013
Сообщений: 177
27.05.2013, 15:11  [ТС]
Конечно то что код написал на Делфи, а это раздел С++, вообще ни на что не влияет))
Например аналога FillChar в С++ на сколько я знаю вообще нет. Возможна попытка эмуляции, но для этого нужно достаточно знать в этом разделе, да и вообще суть функции. А я в этот раздел вот только залез
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
27.05.2013, 15:33
...ошибаетесь, есть аналог, классический memset. А то что синтаксис дельфийский никак не отменяет того факта, что используются WinAPI вызовы

Что касается вообще всякого рода претензий в виде 'дай готовое, слишком сложно и справкой пользоваться не хочу', это не ко мне, учитесь.
0
8 / 8 / 0
Регистрация: 13.01.2013
Сообщений: 177
27.05.2013, 16:13  [ТС]
Так я и учуся)) вы просто как-то кусками наводки даёте
ну, разберусь в общем
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.05.2013, 16:13
Помогаю со студенческими работами здесь

Написание проигрывателя видео файлов
Помогите пожалуйста. Нужно написать проигрыватель видео файлов на C++ Builder. Нужна программа и...

Как узнать текущее состояние видео проигрывателя
Всем привет! У меня такой вопрос. Допустим есть видео, которое проигрывается в Media Player...

При воспроизведении файла проигрывателем Windows Media произошла ошибка
//пишем заголовок .wav файла, заполняем его данными struct WAVHEADER { char chunkId; char...

Создание проигрывателя mp3
Добрый день! Обращаюсь к вам с просьбой - не могли бы вы подробно объяснить как в MS Visual C++...

Drag&Drop и управление проигрывателем музыки
Люди добрые!!! Пишу поисковик чисто для песен (это для знакомой, она диджеем работает), вызов по...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru