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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

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

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

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

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MK
« Ответ #45 : 11 Декабря 2010, 15:15:56 »
Я имел ввиду не масивы, а просто обозвал так. =)

Ну тогда называйте все своими именами :)

Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MK
« Ответ #46 : 11 Декабря 2010, 16:43:20 »
Рабочий вариант, с ограничением на 3-и файла субтитров. (отображает все, но обрабатывает только первые три, это видно из кода)
(Нажмите, чтобы показать/скрыть)
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

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

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MK
« Ответ #47 : 12 Декабря 2010, 00:41:03 »
а в цикл использовать нельзя?
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MK
« Ответ #48 : 12 Декабря 2010, 00:57:40 »
Можно =/
Только какой!
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MK
« Ответ #49 : 12 Декабря 2010, 18:41:25 »
#!/bin/bash

mediainfo file.mkv | sed -ne 'H;$bz;/^$/{:z;g;/Text #/p;s/.*//;x}' | while read
do
if [[ $(grep "Text #" <<< "$REPLY") ]]
then
i=$(awk -F "#" '{print $2}' <<< "$REPLY")
# echo "$i"
fi
echo "$REPLY" >> ./"$i"

done

На выходе получаем файлы, с таким содержанием:
Text #3
ID                               : 6
Format                           : ASS
Codec ID                         : S_TEXT/ASS
Codec ID/Info                    : Advanced Sub Station Alpha
Language                         : English

Как это записать в переменные проще я пока не придумал, может у вас будут идеи.
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MK
« Ответ #50 : 12 Декабря 2010, 19:12:20 »
Вот же...
(Нажмите, чтобы показать/скрыть)

Я не знаю как, если не одни сабы, понять какой id соответствует тому сабу который я выбрал.
« Последнее редактирование: 12 Декабря 2010, 19:14:10 от RazrFalcon »
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MK
« Ответ #51 : 12 Декабря 2010, 21:58:43 »
Вот мое решение, но им лучше не пользоваться. Никогда не пользоваться.
#!/bin/bash
rm ./subs
rm -r ./temp_folder/
mkdir ./temp_folder/

mediainfo file.mkv | sed -ne 'H;$bz;/^$/{:z;g;/Text #/p;s/.*//;x}' | while read
do
if [[ $(grep "Text #" <<< "$REPLY") ]]
then
i=$(awk -F "#" '{print $2}' <<< "$REPLY")

fi
echo "$REPLY" >> ./temp_folder/"$i"

done

for i in  `ls ./temp_folder/`
do
title=`cat ./temp_folder/$i | grep Title | awk -F ":" '{print $2}'`
language=`cat ./temp_folder/$i | grep Language | awk -F ":" '{print $2}'`

m=`echo $i" "$title" "$language`
echo "$m" >> ./subs

done


k=`cat ./subs | tr " " "_"`
s=`zenity --list --title=Get_subs --column="List" ${k}`

p=`echo "$s" | awk -F "_" '{print $1}'`

id=`cat ./temp_folder/"$p" | sed 2q | grep ID | awk '{print $3}'`
echo "$id"
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MK
« Ответ #52 : 12 Декабря 2010, 22:02:12 »
А почему лучше не пользоваться?
К слову, я думаю надо мне написать еще один скрипт, расширенный более, для выковыривания вообще всего содержимого матрешки.
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MK
« Ответ #53 : 12 Декабря 2010, 22:32:55 »
Тут нужно все еще раз обдумать и сделать как нибудь попроще.

UP Не получается это проще сделать. Почистил лишнее, но все равно как то не очень. Несколько скриптов создавать не стоит, можно обойтись разделением его на функции. Сначала скрипт будет подготавливать информацию о субтитрах и дорожках, а потом формировать окончательную команду исходя из выбора пользователя. Только вот стоит-ли оно все этого, может проще запомнить синтаксис mkvextract?...

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 13 Декабря 2010, 00:30:10 от aliftin »
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MK
« Ответ #54 : 13 Декабря 2010, 09:41:27 »
Ну можно конечно, но проще ПКМ->вырезать сабы, чем каждый раз запускать консоль, находить через тоже mediainfo id потом скидывать файл  итд.
У меня работает только то что я писал выше и то криво (пока пользуюсь тем скриптом который на первой странице). Просто можно довести до ума, и получится аля mkvextractGUI как в винде, ведь для линя его вроде нет =/

Еще можно попробовать, когда уже все будет работать, перейти на mkvinfo, так как если человек поставил себе MKVToolNix, ему не придется еще и mediainfo искать и качать.

PS: больше чем mkvextract -h сам не знаю...
PSS: можно ли здесь awk -F"|" '{print $1} 1-у заменить на переменную?
Нашел как:
i='$1'
echo "$answer" | awk -F"|" '{print '$i'}'

Пользователь решил продолжить мысль 13 Декабря 2010, 11:57:07:
Рабочий вариант:
(Нажмите, чтобы показать/скрыть)
Надо еще допилить и потестить, но зато пашит!
« Последнее редактирование: 13 Декабря 2010, 11:57:07 от RazrFalcon »
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MKV
« Ответ #55 : 22 Декабря 2010, 04:04:05 »
(Нажмите, чтобы показать/скрыть)
Этот код выдает только true true true, почему на else не реагирует?!
Вывод консоли:
(Нажмите, чтобы показать/скрыть)
Ведь все идентично =(
 
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MKV
« Ответ #56 : 27 Декабря 2010, 06:47:27 »
Обновил первый пост.
Полностью рабочий экстрактор.
Надеюсь кому то пригодиться.
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн yaa13

  • Активист
  • *
  • Сообщений: 311
    • Просмотр профиля
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MKV
« Ответ #57 : 27 Декабря 2010, 09:56:09 »
Пригодится, спасибо. Тока, имхо, нуна в шапке скрипта написать какие зависимости у него есть. Типа пользователь должен сначала установить MKVToolNix и чегойто ещё, что не идёт искаропки.

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: [РЕШЕНО] Скрипт для вырезания субтитров из MKV
« Ответ #58 : 27 Декабря 2010, 14:32:19 »
Спасибо. Шапку обновил.
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

tagnupip

  • Гость

 

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