-
Здравствуйте.
На сайте реализован вывод видео двумя способами.
Можно, во-первых, задать ссылку на youtube ролик (тогда получение инфы о нем сводится к GET-запросу на http://gdata.youtube.com/feeds/api/videos/#VIDEO_ID# и парсингу XML, если интересно).
Во-вторых, можно выбрать файл на сервере - и тогда инфу о нем можно получить только.. хм.. если как-то считать эту инфу напрямую из файла. В поисках библиотек я набрел только на ffmpeg, но он какой-то монструозный. Может, конечно, я не так ищу...
А надо мне, собственно, по-минимуму - хотя бы разрешение видео-файла получить (пока для flv и mpeg, но может и еще каких-то форматов).
Может, кто-то сталкивался? -
Пользуюсь давно написанным куском
import re, os
MPLAYER_ROOT = "mplayer" # "mplayer.exe"
def infoMedia(fname):
string = os.popen('%s -vo null -ao null -frames 0 -identify "%s"' % (MPLAYER_ROOT, fname)).read()
result = {}
tmp_keys = {}
for line in re.findall("ID_(.*)=(.*)", string):
skey, svar = line[0].lower(), line[1]
match = re.search("^(.*)_name(\d+)$", skey)
if match:
g = match.groups()
if g[0] not in result:
result[g[0]] = {}
tmp_keys[g[0]] = {g[1]: svar}
else:
tmp_keys[g[0]] [g[1]] = svar
continue
match = re.search("^(.*)_value(\d+)$", skey)
if match:
g_key = tmp_keys[g[0]] [g[1]]
result[g[0]] [g_key] = svar
continue
result[skey] = svar
return result
print infoMedia("test.avi") -
Спасибо! Были мысли по поводу использования какой-нибудь консольной программы, но думал сначала поискать "прямой" способ.
А не поясните, все эти флаги отвечают за то чтобы из файла получить только данные, и при этом ресурсы тратятся минимально? -
Можно получить данные о видео файле (и других файлах) через утилиту file
в питон вызвать например так:> file iso/video/99\ франков.avi
iso/video/99 франков.avi: RIFF (little-endian) data, AVI, 720 x 304, 25.00 fps, video: XviD, audio: Dolby AC3 (6 channels, 48000 Hz)
и парсить вывод.subpocess.call('file ...', shell=True) -
Еще проще, спасибо.
-
> Можно получить данные о видео файле
> (и других файлах) через утилиту file
Можно но не нужно. Ключевое слово - mediainfo
и соответствующий биндинг для python к нему
По части видеофайлов умеет намнооого больше чем стандартный file
И более кроссплатформенно.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.


