Вернуться   Форум > Университет > Видеораздел
Регистрация Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2011, 12:59   #1
radtor
Сообщения: n/a
Проблема с воспроизведением файлов с длинными именами

В последнее время столкнулся с проблемой, когда проигрыватели (КМР-плеер и WMP) отказываются воспроизводить файлы с длинными именами. Переименовать их вручную не получается. Есть и такая странность некоторые файлы воспроизводятся, но скопировать их опять же нельзя т.к. выдается сообщение о недопустимом имени файла. Если кто сталкивался с подобной проблемой и решил ее отпишитесь пожалуйста. Заранее благодарен!
  Ответить с цитированием
Старый 19.08.2011, 14:50   #2
Карполя
Техподдержка
Медаль пользователю. ЗОЛОТОМедаль автору. ЗОЛОТО Форумчанин
Аватар для Карполя
Регистрация: 25.01.2008
Адрес: Санкт-Петербург
Сообщения: 1,314
Репутация: 298
Ограничение на длину имени файла - это ограничение операционной системы. Причем ограничивается длина имени в том виде, как имя передается программе.

Т.е., если файл запускается из некоторой паки на компьютере (родительской папки), то путь передается программе от этой папки.

Напимер, если файл находится в папке "C:Documents and SettingsИмя_учетной_записиApplication DatauTorrentTri.mushketera.ili.Dvadcat.let.spustia .1986.DivX.VHSRip-Kinozal.TV.avi.torrent", то если текущая папка в Проводнике - Application Data, то имя файла, передаваемого программе uTorrent система сформирует в виде uTorrentTri.mushketera.ili.Dvadcat.let.spustia.198 6.DivX.VHSRip-Kinozal.TV.avi.torrent и длина окажется достаточно короткой.

Если же активной папкой является корень диска, то и имя будет формироваться от корня диска, т.е. в виде C:Documents and SettingsИмя_учетной_записиApplication DatauTorrentTri.mushketera.ili.Dvadcat.let.spustia .1986.DivX.VHSRip-Kinozal.TV.avi.torrent, т.е., значительно длиннее и может превысить лимит.

У релизера фильм мог находится в папке с коротким полным именем, например, в папке C:Video, и у него длина имени всегда достаточно короткая, например, C:VideoTri.mushketera.ili.Dvadcat.let.spustia.1986 .DivX.VHSRip-Kinozal.TV.avi.

А вы сохранили торрент в папку "C:Documents and SettingsИмя_учетной_записиМои документыМои видеозаписиКинозалКрапивин". Во время закачки в uTorrent стояла настройка "Сохранять в..." в виде C:Documents and SettingsИмя_учетной_записиМои документыМои видеозаписиКинозал. uTorrent тогда отсчитывает пути от этой папки и для него полное имя будет в виде КрапивинTri.mushketera.ili.Dvadcat.let.spustia.198 6.DivX.VHSRip-Kinozal.TV.avi и проблем при закачки нет, т.к. полное имя достаточно короткое.

При воспроизведении у плеера нет установки начальной папки, и для него полное имя будет отсчитываться от корня диска, т.е. C:Documents and SettingsИмя_учетной_записиМои документыМои видеозаписиКинозалКрапивинTri.mushketera.ili.Dvadc at.let.spustia.1986.DivX.VHSRip-Kinozal.TV.avi. И может оказаться, что оно превышает лимит.

Можно попытаться открыть в Проводнике папку C:Documents and SettingsИмя_учетной_записиМои документыМои видеозаписиКинозалКрапивин и запускать видео прямо из нее, чтобы сократился путь к файлу.

Вторая причина - недопустимые символы в имени. Дело в том, что все локализованные версии Windows используют при создании имен на языке локализации однобайтовую кодовую страницу своего языка: CP1252 - для английской версии, CP1251 - для русской версии, CP1250 - для версии на языках стран Восточной Европы. Если же имя файла задается на другом языке, даже поддерживаемом данной версии, то имя записывается в кодировке Unicode (т.к. в "родной" таблице таких символов нет).

В результате, если у релизера установлена русская версия и он задал имя файла и/или папки на русском, то у него без проблем символы имени будут закодированы по одному бюайту на символ в кодировке Windows-1251. А когда вы открываете этот файл на компьютере с английской версией Windows, то ОС видит, что кодировка однобайтавая, а не Unicode, и выводит символы в своей "родной" кодировке Windows-1252. В результате получаются "букозяки", т.к. одному и тому же коду символа в разных кодовых таблицах соответствуют разные символы. Хуже того, какие-то коды символов, разрешенные в одной кодировке, могут оказаться недопустимыми в другой.

При этом один и тот же недопустимый символ может в разных ситуациях проявляться по-разному. Например, при наличие в имени файла обного и того же недопустимого символа записываться на винчестер, отображаться в списке Проводника и открываться в плеере файл может нормально, а при копировании и/или удалении будут возникать различные глюки (т.к. в этих операциях используются разные системные программы, а они по-разному реагируют на недопустимык символы, т.к. одни программисты более добросовестные и сделали "защиту от дурака", а другие поленились).

И это неустранимое явление. Казалось бы, сохрани файл на национальном языке в кодировке Unicode - и он будет корректно работать на компьютерах с любой версией Windiws. Однако Майкрософт не предусмотрел "ручного" управления кодировкой - система автоматически определяет, в какой кодировке сохранять файл в зависимости от того, на каком языке вы задали его имя, а в разных локализованных версиях точки зрения системы на то, в какой кодировке какой язык представлять, не совпадают.

Именно поэтому в Правилах Кинозала такие жёсткие требования на имена файлов и папок в раздачах: у нас разрешены только те символы, которые допустимы в любых операционных системах и в любых их версиях.

И, если проблема с копированием и удалением не в длине пути (это устранимо, если зайти непосредственно в папу с файлом, чтобы полное имя "источника" стало минимально коротким и переместить файл в папку с более коротким именем), то проблема с недопустимыми символами неустранима. А недопустимые символы у релизера вполне могут быть. Ведь часто раздаются релизы с других трекеров, где требования к именам не такие жесткие, как у нас, и, хотя при раздаче папки с файлами папка переименовывается по нашим правилам, файлы в папке зачастую релизеры оставляют такими, как они названы на ресурсе, откуда их взяли.

Кроме того, часто бывает некорректное имя, когда некоторые буквы вместо латинских написаны похожими на них русскими (например, С, Р, К, Е и др.). При проверке раздачи такое трудно заметить, а системе это не нравиться.

Бороться с этим можно только еще на этапе скачивания, указав торрент-клиенту другое имя при сохранении, из только допустимых символов.
  Ответить с цитированием
Старый 19.08.2011, 18:50   #3
radtor
Сообщения: n/a
Большое спасибо за столь развернутый и информативный ответ! Буду пробовать.
  Ответить с цитированием
Старый 25.05.2012, 08:18   #4
1234567890
Главный Кинооператор
Медаль пользователю. ЗОЛОТОМедаль автору. ЗОЛОТО Великий Гуру
Аватар для 1234567890
Регистрация: 15.03.2008
Адрес: Всеми́рная паути́на
Сообщения: 4,554
Репутация: 500
Проблема с воспроизведением файлов с длинными именами

radtor сказал(a):
...файлы с длинными именами...
Карполя сказал(a):
...сохранили торрент в папку "C:Documents and SettingsИмя_учетной_записиМои документыи-так-далее
1.) Настоятельно не рекомендуется использовать подобных путей, тем более для скачивания торрент-контента!!!

2-1.) Настоятельно рекомендуется при покупке компьютера требовать "разбить винт" (руководствуясь возможностями/потребностями, но С не менее 35-50 Гигов) как минимум на 2 раздела "C-System" (cм. пункт 2-1) и "D-Data" (для хранения любого контента), в котором можно создать каталоги (папки) - "Video", "Music", "Books" и т.д..
2-2.) Настоятельно не рекомендуется диск "C" использовать кроме как для операционной системы и установленных программ!!!
2-3.) Рекомендуется скачиваемый торрент-контент сразу располагать с соответствующих каталогах (папках), избегая лишние дальнейшие перемещения...

3.) Избегайте длинных путей при создании базового дерева каталогов как "Закон"!!!

В Вашем случае при оговоренном в пункте 2-1 варианте вариант решения:
переместить "общую скачанную папку" (или скачать заново файл)
непосредственно в созданный для подобного контента каталог


Судя по написанному проблема именно в длинном пути ...
  Ответить с цитированием
Старый 13.11.2012, 00:29   #5
Stommel
Сообщения: n/a
Всем доброй ночи!
Вопрос: Только что переписал на выносной винчестер видео , которое было записано с саттелита с ХД канала, после чего я скопировал его с ресивером Panasonic bly ray DMR-BST721 и попробовал скопировать в комп, но он этот винчестер не расспознаёт..?????
Пробовал в винде и в мэке..безрезультатно.
Суважением Михаил
  Ответить с цитированием
Старый 13.11.2012, 13:06   #6
Pirx
Кинооператор
Медаль пользователю. ЗОЛОТО Новичок
Аватар для Pirx
Регистрация: 23.12.2011
Адрес: СССР
Сообщения: 69
Репутация: 29
Если это видео записывалось с помощью записывающего устройства Panasonic на жесткий диск, то воспроизвести его сможет только это устройство. Тоже самое будет, если записывать с ТВ Panasonic на внешний жесткий - воспроизвести сможет только этот ТВ и даже другой такой же ТВ Panasonic не сможет. Такие вот они, Панасоники. У них своя файловая система.
  Ответить с цитированием
Старый 14.11.2012, 21:27   #7
AlexAndr92
Главный Кинооператор
Медаль пользователю. ЗОЛОТО Любитель
Аватар для AlexAndr92
Регистрация: 05.05.2009
Адрес: Россия г. Курск
Сообщения: 258
Репутация: 113
Stommel сказал(a):
Всем доброй ночи!
Вопрос: Только что переписал на выносной винчестер видео , которое было записано с саттелита с ХД канала, после чего я скопировал его с ресивером Panasonic bly ray DMR-BST721 и попробовал скопировать в комп, но он этот винчестер не расспознаёт..?????
Пробовал в винде и в мэке..безрезультатно.
Суважением Михаил
разработчики Панасоник умышленно так сделали, чтобы было не возможно взять инфу с жесткого диска, так что без вариантов
  Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей - 0 , гостей - 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск



Часовой пояс GMT +3, время: 14:57.