Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: [РЕШЕНО] Скрипт для вырезания субтитров из MKV  (Прочитано 12444 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: Скрипт для вырезания субтитров из MKV
« Ответ #15 : 20 Ноября 2010, 17:01:41 »
Стоп, зачем вы ставите sh? В скрипте указано что он должен запускаться в оболочке bash (вообще то в dash, но это не критично). Скрипт из 11 сообщения должен работать как нужно, просто сделайте его исполняемым.
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Скрипт для вырезания субтитров из MKV
« Ответ #16 : 20 Ноября 2010, 20:44:18 »
Все, со всем разобрался. Скоро выложу готовый скрипт.

Пользователь решил продолжить мысль 21 Ноября 2010, 08:07:37:
Скрипт работает.
Выложил его в первом посте.
Пару вопросов еще есть
1) Путь к файлу у меня к примеру такой /media/data/my.mkv. Как мне получить my? То есть имя файла.
2) Как получить путь к папке с фалом? У меня просто на второй раздел сабы сбрасываются.
3) В консоли если запускать скрипт, то там, процесс mkvextract показывает процент экспортирования. Как его вывести в zenity или gdialog?
« Последнее редактирование: 21 Ноября 2010, 04:17:29 от RazrFalcon »
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: Скрипт для вырезания субтитров из MKV
« Ответ #17 : 21 Ноября 2010, 12:12:56 »
1. https://forum.ubuntu.ru/index.php?topic=122704.msg924961#msg924961
2. Вот так:
aliftin@r2d2:~$ pwd ./film.mkv
/home/aliftin
3. Ищите примеры с "zenity    --progress", я что то совсем не помню как оно работает.

Слишком все как то громоздко получилось у вас. Зачем проверять какой формат субтитров, если в конечном итоге меняется только расширение? Не проще-ли "выдернуть" эту информацию и сохранить в переменную? Тогда у вас как минимум пропадет 2 цикла с "if". И зачем вы проверяете пуста-ли переменная "$str_num", я не очень понял это.
« Последнее редактирование: 21 Ноября 2010, 12:28:05 от aliftin »
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Скрипт для вырезания субтитров из MKV
« Ответ #18 : 21 Ноября 2010, 14:27:56 »
Спасибо, буду разбираться.
Цитировать
И зачем вы проверяете пуста-ли переменная "$str_num", я не очень понял это.
Проблема в том, что если в контейнере только 1-и сабы, то там нет Text #1, там просто Text.
И значит строка str_num будет пустой.
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Скрипт для вырезания субтитров из MKV
« Ответ #19 : 21 Ноября 2010, 14:28:50 »
В nautilus-actions можно добавить скрипт?
У меня почему то не реагирует.
sh /media/data/script
%f

Однозначно можно ... укажи полный путь а не только имя файла, по моему в n-a это %d
« Последнее редактирование: 21 Ноября 2010, 14:32:29 от Чистый »
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Скрипт для вырезания субтитров из MKV
« Ответ #20 : 21 Ноября 2010, 14:33:08 »
Чистый,
уже добавил
/path/script_name
%d/%f
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Скрипт для вырезания субтитров из MKV
« Ответ #21 : 21 Ноября 2010, 14:33:24 »
Чистый,
уже добавил
/path/script_name
%d/%f
работает?
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Скрипт для вырезания субтитров из MKV
« Ответ #22 : 21 Ноября 2010, 14:34:31 »
Да. Скрипт делает все что нужно. Сейчас допиливаю.

Пользователь решил продолжить мысль 21 Ноября 2010, 15:43:14:
aliftin,
ответ на первый и второй вопрос немного не то что нужно.
У меня есть:
path="/media/data/my.mkv"Как получить my и /media/data.
pwd не поможет, а как удалить .mkv я знаю.
Конкретней, меня интересует как вырезать все что между / /, а потом уже  и сами слеши удалю. И получу чистое имя my.mkv

И еще, формат брать отдельно не очень удобно, так я просто еще на одну строку ниже спускаюсь, а так придется снова выполнять все действия что и для ID.
И я не пойму что значит, обойтись без if, то что я выдергиваю не равно расширению, все равно переделывать через if.
« Последнее редактирование: 21 Ноября 2010, 14:47:22 от RazrFalcon »
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: Скрипт для вырезания субтитров из MKV
« Ответ #23 : 21 Ноября 2010, 15:27:27 »
aliftin@r2d2:~$ dirname /home/aliftin/burn/mus/zager_and_evans_-_in_the_year_2525_exordium_and_terminus.mp3
/home/aliftin/burn/mus

aliftin@r2d2:~$ basename /home/aliftin/burn/mus/zager_and_evans_-_in_the_year_2525_exordium_and_terminus.mp3
zager_and_evans_-_in_the_year_2525_exordium_and_terminus.mp3
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Скрипт для вырезания субтитров из MKV
« Ответ #24 : 21 Ноября 2010, 15:33:05 »
Все гениальное просто  :2funny:
Хвала dirname, basename.
Спасибо aliftin еще раз.

Скрипт обновил.

Пользователь решил продолжить мысль 21 Ноября 2010, 18:06:03:
Посмотрел на zenity, все вроде просто.
Только как получить проценты из консоли?

Пользователь решил продолжить мысль 21 Ноября 2010, 17:10:05:
Цитировать
script "my.mkv"
Extracting track 4 with the CodecID 'S_TEXT/UTF8' to the file 'my-1.srt'. Container format: SRT text subtitles
Progress: 100%
Extracting track 5 with the CodecID 'S_TEXT/UTF8' to the file 'my-2.srt'. Container format: SRT text subtitles
Progress: 100%
Extracting track 6 with the CodecID 'S_TEXT/ASS' to the file 'my-3.ass'. Container format: SSA/ASS text subtitles
Progress: 100%
Так выгляди в консоли. Как получать значения Progress?
« Последнее редактирование: 21 Ноября 2010, 16:10:42 от RazrFalcon »
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: Скрипт для вырезания субтитров из MKV
« Ответ #25 : 21 Ноября 2010, 16:59:14 »
А это вообще процесс долгий (в смысле вырезание субтитров)? Может и не стоит делать прогрессбар?
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Скрипт для вырезания субтитров из MKV
« Ответ #26 : 21 Ноября 2010, 17:40:51 »
Зависит от размера файла.
Если 400 мб то сек 15, если 9Гб то 4-5 мин. На каждый файл сабов.
Все равно в конце выдается сообщение о завершении. Просто интересно реализовать.
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: Скрипт для вырезания субтитров из MKV
« Ответ #27 : 21 Ноября 2010, 17:46:00 »
Вот, нашел решение тут - http://szone.berlinwall.org/files/szone/Video_Convertor_Beta:
mkvextract tracks "$file" -c UTF8 "$id_sub":""$dir"/"$name"-"$num".ass" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $2; fflush();}' | zenity --progress --percentage=0 --auto-close --title="MKV Extraction Tools"  --text="Extracting Subtitle Track..."
Я правда когда проверял звук выдергивал и у меня был виден прогресс бар, у вас я думаю все пройдет быстро и вы ничего не увидите.
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Скрипт для вырезания субтитров из MKV
« Ответ #28 : 21 Ноября 2010, 17:56:57 »
 ???
В консоли норм, в скрипте ничего.
Наверное по тому что консоль не запускается =/
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: Скрипт для вырезания субтитров из MKV
« Ответ #29 : 21 Ноября 2010, 18:13:14 »
Странно, у меня все работает. Мне кажется когда вытягиваются субтитры проценты бегут очень быстро (0 и сразу 100), а вот когда имеешь дело со звуком, то все не так (0, 23, 45, 68 и 100).
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

 

Страница сгенерирована за 0.018 секунд. Запросов: 21.