Сортировка видео по битрейту

изготовителем должен быть «DisplayLink» Linux-драйвер - проверка WIP: http://libdlo.freedesktop.org и обсуждение на http://www.displaylink.org/forum/forumdisplay.php?f=29[!d0 ]

1
задан 12 October 2014 в 13:03

2 ответа

Возможно, вам будет полезно ознакомиться с этой нитью.

Вот краткое резюме, предложенное в комментариях:

1) установить python-nautilus и python-mutagen с помощью [ f1]

2) Задайте свою переменную PYTHONPATH, следуя инструкциям этой нити .

3) Создайте каталог с именами python-extensions в ~ / .nautilus

4) Загрузите этот скрипт python и вставьте его в ~ / .nautilus / python-extensions

5) Перезапустите nautilus с помощью $ nautilus -q && nautilus &

Я по-прежнему рекомендую чтение через нить, хотя там много полезной информации.

1
ответ дан 24 May 2018 в 02:57
  • 1
    Это, если бы я мог приступить к работе, было бы самым простым решением. Но какая-то проблема где-то, что я не могу понять – Akheel K M 12 October 2014 в 22:24

Как я уже упоминал в своем комментарии, команда mediainfo действительно, очень медленная. Я думаю, что есть лучшие альтернативы.

Сказав это, вот моя версия скрипта python, которая должна выполнить задание (python3):

#!/usr/bin/env python3

import os
import subprocess

directory = "/path/to/files"

# list the files in the directory
files_tosort = os.listdir(directory)

filedata = []
for file in files_tosort:
    # combine filepath and file, take care of the whitespaces
    filepath = directory+"/"+file; command = "mediainfo "+"'"+filepath+"'"
    # get the file's data
    data = subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8")
    # extract the bitrate from the output
    bitrate = [line[line.find(":")+2:].replace("Kbps", "").replace(" ", "") \
               for line in data.splitlines() if "Bit rate" in line][0]
    # add the found bitrate+filename to he list
    filedata.append((int(bitrate), file))

# sort the list by the bitrate
filedata.sort(key=lambda item: item[0])
# print out
for item in filedata:
    print("bitrate: "+str(item[0])+" Kbps\t file: "+item[1])

Создает вывод, похожий на: [!d2 ]

bitrate: 606 Kbps    file: film1.avi
bitrate: 731 Kbps    file: film10.avi
bitrate: 790 Kbps    file: film4.avi
bitrate: 802 Kbps    file: film3.avi
bitrate: 845 Kbps    file: film6.avi
bitrate: 919 Kbps    file: film7.avi
bitrate: 984 Kbps    file: film5.avi
bitrate: 1023 Kbps   file: film2.avi
bitrate: 1088 Kbps   file: film8.avi

Примечание:

, если существует риск нечитаемых файлов, в сценарий должен быть встроен «try / except».

] Как использовать:

Как и любой скрипт, скопируйте сценарий в пустой файл, установите путь к файлам в начале скрипта, сохраните его как sort_video.py и запустите его командой :

python3 /path/to/sort_video.py
1
ответ дан 24 May 2018 в 02:57

Другие вопросы по тегам:

Похожие вопросы: