Russian Qt Forum

Qt => Мультимедиа => Тема начата: 79500539520 от Февраль 17, 2017, 10:12



Название: vlc-qt не проигрываются видео с русскими буквами в названии
Отправлено: 79500539520 от Февраль 17, 2017, 10:12
использую vlc-qt в vlcmedia передаю урлик, если в названии нет русских букв видео проигрывается в противном случае
libvlc: VLC is unable to open the MRL 'http://192.168.254.254/media/storage/Velikolepnaya_semerka_2016/Великолепная семерка (The Magnificent Seven).mkv'. Check the log for details.
код программы
    _instance = new VlcInstance(VlcCommon::args(), this);
    QString file ="http://192.168.254.254/media/storage/Velikolepnaya_semerka_2016/Великолепная семерка (The Magnificent Seven).mkv";
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    qDebug()<<"codac=r"<<codec->toUnicode(file.toUtf8());
    QTextCodec::setCodecForLocale(codec);
    _media = new VlcMedia(codec->toUnicode(file.toUtf8()),_instance);
   _player = new VlcMediaPlayer(_instance);
   _player->setVideoWidget(ui->video);
   ui->video->setMediaPlayer(_player);
    _player->open(_media);
    _player->play();


Название: Re: vlc-qt не проигрываются видео с русскими буквами в названии
Отправлено: gil9red от Февраль 17, 2017, 10:21
А это работает?
"http://192.168.254.254/media/storage/Velikolepnaya_semerka_2016/%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%BB%D0%B5%D0%BF%D0%BD%D0%B0%D1%8F%20%D1%81%D0%B5%D0%BC%D0%B5%D1%80%D0%BA%D0%B0%20%28The%20Magnificent%20Seven%29.mkv"


Название: Re: vlc-qt не проигрываются видео с русскими буквами в названии
Отправлено: panAlexey от Февраль 17, 2017, 10:22
Кирилица в последнее время не популярна у западных разработчиков.
Нотепад++ перестал нормально кирилицу распознавать.
И многий софт херовничает.
Вобще западные разрабы забивают на славян стабильно.
Подумываю забить на них в ответ и писать коменты в коде на кирилице :)


Название: Re: vlc-qt не проигрываются видео с русскими буквами в названии
Отправлено: kuzulis от Февраль 17, 2017, 10:24
Цитировать
Код
C++ (Qt)
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
 

1. А зачем это? У Вас исходники не в UTF8?
2. А попробуйте задавать путь через какой-нить виджет (QLineEdit к примеру)?
3. А сам VLC плеер открывает этот урлик?

Я когда-то оч. давно использовал VLC и вроде оно (имею ввиду с русскими путями , а не то что мне надо было  :) ) работало у меня:

Код
C++ (Qt)
int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
 
   QString fileName = QFileDialog::getOpenFileName(nullptr, QDir::homePath(), QObject::tr("Open Video"));
    if (fileName.isEmpty())
        return 0;
 
   static const char * vlc_argv[] = {
//        "-v",
       "--ignore-config",
       "--video-splitter=panoramix", // vlc2.2.2
//        "--vout-filter=panoramix", // vlc 1.1.11
       "--panoramix-cols=7",
       "--panoramix-rows=1",
       "--panoramix-bz-length=0",
       "--panoramix-bz-height=0"
 
   };
   static const int vlc_argc = sizeof(vlc_argv) / sizeof(vlc_argv[0]);
 
   libvlc_instance_t *inst = ::libvlc_new(vlc_argc, vlc_argv);
 
   ::libvlc_set_app_id(inst, "org.my.wall", "2.2.1", "wall"); // vlc 2.2.2
   ::libvlc_set_user_agent (inst, "My Wall", "My/2.2.1"); // vlc 2.2.2
 
   const QByteArray nativePath = QDir::toNativeSeparators(fileName).toUtf8();
 
   libvlc_media_t *m = ::libvlc_media_new_path(inst, nativePath.constData());
 
   // loop
   ::libvlc_media_add_option(m, "input-repeat=-1");
 
   libvlc_media_player_t *mp = ::libvlc_media_player_new_from_media(m);
 
   /*
   auto layout = new QVBoxLayout;
   auto videoWidget = new QWidget;
   layout->addWidget(videoWidget);
 
   auto container = new QWidget;
   container->setLayout(layout);
 
   ::libvlc_media_player_set_hwnd(mp, HWND(videoWidget->winId()));
   */

 
   ::libvlc_media_release(m);
 
   ::libvlc_media_player_play(mp);
 
   return a.exec();
}
 

Как-то так было, задавал путь через QFileDialog.

PS: Но то был путь к локальному файлу, а не URL.


Название: Re: vlc-qt не проигрываются видео с русскими буквами в названии
Отправлено: kuzulis от Февраль 17, 2017, 10:33
Подумываю забить на них в ответ и писать коменты в коде на кирилице :)

+100500, можно даже сам код на кирилице, шоб уж наверняка.


Название: Re: vlc-qt не проигрываются видео с русскими буквами в названии
Отправлено: gil9red от Февраль 17, 2017, 10:35
Подумываю забить на них в ответ и писать коменты в коде на кирилице :)

+100500, можно даже сам код на кирилице, шоб уж наверняка.

(Привет, 1C!) :D


Название: Re: vlc-qt не проигрываются видео с русскими буквами в названии
Отправлено: kambala от Февраль 17, 2017, 13:44
Подумываю забить на них в ответ и писать коменты в коде на кирилице :)

+100500, можно даже сам код на кирилице, шоб уж наверняка.
https://habrahabr.ru/post/116301/#comment_3773449