Strona 3 z 4

Re: Skrypt mkvmerge m2ts do mkv

: 14 września 2018, 18:17
autor: dedito
dedito pisze: 14 września 2018, 09:41 Czyli wywołanie skryptu będzie:

Kod: Zaznacz cały

nazwa_skryptu lokalizacja_poszukiwan lokalizacja_sciezki_dzwiekowej lokalizacja_wyjsciowa
W skrypcie argumenty będą dostępne pod $1, $2, i $3 co sobie możesz przepisać do lepiej identyfikowalnych zmiennych, co dodatkowo uczyni kod bardziej uniwersalnym, nie będzie większego problemu przejść na inne metody parametryzacji, przykładowo:

Kod: Zaznacz cały

Lokalizacja_poszukiwan = $1
lokalizacja_sciezki_dzwiekowej = $2
lokalizacja_wyjsciowa = $3
Poczytaj http://bash.0x1fff.com/zmienne-specjalne
Nie pchaj tam finda czy innych poleceń, to użyjesz w dalszej części skryptu.

Re: Skrypt mkvmerge m2ts do mkv

: 14 września 2018, 18:40
autor: szlejk
Coś w tym kierunku?

Kod: Zaznacz cały

#!/bin/bash
######################################################
# Skrypt ma za zadanie automatycznie przekonwertować #
# plik m2ts do pliku mkv z wybraną ścieżką dzwiękową #
######################################################

Lokalizacja_poszukiwan="$1"
lokalizacja_sciezki_dzwiekowej="$2"
lokalizacja_wyjsciowa="$3"
echo "To jest sciezka wyszukiwania: $(find /home/szlejk -name "*m2ts")"
echo "To jest lokalizacja sciezki dzwiekowej: $lokalizacja_sciezki_dzwiekowej"
echo "To jest lokalizacja wyjsciowa: $lokalizacja_wyjsciowa"

Re: Skrypt mkvmerge m2ts do mkv

: 14 września 2018, 19:44
autor: dedito
echo dałem tylko do celów testowania (poczytaj do czego służy polecenie echo).
W komendzie find użyj zmiennej $Lokalizacja_poszukiwan, taki jest sens tej zmiennej abyś ją przekazał jako zmienną specjalną $1 w miejsce /home/szlejk.
Inaczej będziesz zawsze szukał w /home/szlejk, a nie o to chodziło, miał być wybór lokalizacji poszukiwań.

Re: Skrypt mkvmerge m2ts do mkv

: 15 września 2018, 16:34
autor: szlejk
Nie bardzo rozumiem jak skrypt ma wiedzieć gdzie szukać

Kod: Zaznacz cały

#!/bin/bash
######################################################
# Skrypt ma za zadanie automatycznie przekonwertować #
# plik m2ts do pliku mkv z wybraną ścieżką dzwiękową #
######################################################

Lokalizacja_poszukiwan="$1"
lokalizacja_sciezki_dzwiekowej="$2"
lokalizacja_wyjsciowa="$3"

find $Lokalizacja_poszukiwan -name "*m2ts" -print0

Re: Skrypt mkvmerge m2ts do mkv

: 15 września 2018, 18:23
autor: dedito
Podajesz to przy wywołaniu skryptu jak to już pisałem:

Kod: Zaznacz cały

nazwa_skryptu lokalizacja_poszukiwan lokalizacja_sciezki_dzwiekowej lokalizacja_wyjsciowa
, bardziej obrazowo:

Kod: Zaznacz cały

nazwa_skryptu /sciezka/poszukiwan /sciezka/do/sciezki/dzwiekowej /sciezka/gdzie/ma/zapisac/skonwertowany/plik
Tak dla pewności powtórzę jeszcze raz, testy skryptu rób gdzieś w katalogu testowym i z konta użytkownika (nie root).

Re: Skrypt mkvmerge m2ts do mkv

: 16 września 2018, 16:08
autor: szlejk

Kod: Zaznacz cały

./m2ts2mkv.sh /home/szlejk/Wideo/MKV/ /home/szlejk/Wideo/ /home/szlejk/Wideo/
wynik

Kod: Zaznacz cały

To jest sciezka wyszukiwania: /home/szlejk/Wideo/MKV/
To jest lokalizacja sciezki dzwiekowej: /home/szlejk/Wideo/
To jest lokalizacja wyjsciowa: /home/szlejk/Wideo/


Re: Skrypt mkvmerge m2ts do mkv

: 16 września 2018, 17:40
autor: dedito
No i dobrze, teraz sobie wykorzystaj te zmienne w poleceniach konwertujących.

Re: Skrypt mkvmerge m2ts do mkv

: 19 września 2018, 17:36
autor: szlejk
Jak przy pomocy find odnaleźć największy plik m2ts

Kod: Zaznacz cały

#!/bin/bash
######################################################
# Skrypt ma za zadanie automatycznie przekonwertować #
# plik m2ts do pliku mkv z wybraną ścieżką dzwiękową #
######################################################

Lokalizacja_poszukiwan="$1"
lokalizacja_sciezki_dzwiekowej="$2"
lokalizacja_wyjsciowa="$3"

#echo "To jest sciezka wyszukiwania:$Lokalizacja_poszukiwan"
#echo "To jest lokalizacja sciezki dzwiekowej:$lokalizacja_sciezki_dzwiekowej"
#echo "To jest lokalizacja wyjsciowa:$lokalizacja_wyjsciowa"

find "$1" -name "*m2ts"

Kod: Zaznacz cały

./m2ts2mkv.sh /home/szlejk/Wideo/ /home/szlejk/Wideo/ /home/szlejk/Wideo/MKV/
/home/szlejk/Wideo/MKV/Ochroniarz/BDMV/STREAM/00000.m2ts

Re: Skrypt mkvmerge m2ts do mkv

: 19 września 2018, 20:03
autor: dedito
Masz to w skrypcie, który znalazłeś:

Kod: Zaznacz cały

# Find the biggest .M2TS file, usually the movie
   BIGST_M2TS=`find . -type f | xargs ls -1S | head -n 1 | rev | cut -c 6- | rev`
aczkolwiek ten komentarz do linii kodu nie jest precyzyjny, gdyż jeśli dobrze to analizuje składnia find w tym przypadku szuka największego pliku, niekoniecznie musi to być .M2TS.
Druga sprawa, że taka metoda szukania największego pliku nie jest raczej zbyt dobra i poszukałbym lepszego rozwiązania np. takiego:

Kod: Zaznacz cały

find $1 -maxdepth 1 -name "*.M2TS" -printf "%f\n"|sort -nr|head -n1

Re: Skrypt mkvmerge m2ts do mkv

: 20 września 2018, 09:37
autor: szlejk
A czy mogę prosić o opisanie co dokładnie za co odpowiada w tej części kodu?

Kod: Zaznacz cały

-maxdepth głębokość
 Schodzi maksymalnie o głębokość (nieujemna liczba całkowita) poziomów katalogów od argumentów  wiersza  poleceń.

-maxdepth 0
 oznacza, by testy i akcje stosować tylko do argumentów wiersza poleceń.