From a1a93efa3f96692819e9bd8e12c53c371c32cf9f Mon Sep 17 00:00:00 2001 From: Maxim Lihachev Date: Wed, 24 Aug 2016 11:59:22 +0500 Subject: [PATCH] =?UTF-8?q?v1.2.=20=D0=A1=D0=BE=D1=85=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=B2=20=D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=B7=D0=B0=20=D1=82=D0=B5=D0=BA=D1=83=D1=89?= =?UTF-8?q?=D1=83=D1=8E=20=D0=B4=D0=B0=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/masterindex.html | 2 +- doc/robo_files.html | 2 +- doc/robo_functions.html | 2 +- doc/robo_sourcefiles.html | 2 +- doc/robo_variables.html | 2 +- doc/streamproxy.html | 56 +++++++++++++++++++----------------- doc/streamsaver.html | 73 ++++++++++++++++++++++++++++------------------- doc/tobo_toplevel.html | 2 +- doc/toc_index.html | 2 +- settings/archive.xml | 2 +- streamsaver | 28 ++++++++++++------ 11 files changed, 102 insertions(+), 71 deletions(-) diff --git a/doc/masterindex.html b/doc/masterindex.html index 88a3ff2..ef01a91 100644 --- a/doc/masterindex.html +++ b/doc/masterindex.html @@ -45,7 +45,7 @@

A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9

diff --git a/doc/robo_files.html b/doc/robo_files.html index b895dde..514b308 100644 --- a/doc/robo_files.html +++ b/doc/robo_files.html @@ -33,7 +33,7 @@

A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9

diff --git a/doc/robo_functions.html b/doc/robo_functions.html index 21eeaa0..093b799 100644 --- a/doc/robo_functions.html +++ b/doc/robo_functions.html @@ -37,7 +37,7 @@

A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9

diff --git a/doc/robo_sourcefiles.html b/doc/robo_sourcefiles.html index f86d46a..8c92f77 100644 --- a/doc/robo_sourcefiles.html +++ b/doc/robo_sourcefiles.html @@ -48,7 +48,7 @@ streamsaver diff --git a/doc/robo_variables.html b/doc/robo_variables.html index de04947..2be655c 100644 --- a/doc/robo_variables.html +++ b/doc/robo_variables.html @@ -33,7 +33,7 @@

A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9

diff --git a/doc/streamproxy.html b/doc/streamproxy.html index dec09fe..ea3d679 100644 --- a/doc/streamproxy.html +++ b/doc/streamproxy.html @@ -106,16 +106,20 @@ 102 ICECAST="$(readXML icecast $XML)/$(readXML mountpoint $XML)" 103 ICENAME="$(readXML channel_name $XML)" 104 ICEDESC="$(readXML channel_descr $XML)" -105 FORMAT="$(readXML input_format $XML)" -106 -107 echo ffmpeg -i "$STREAM" \ -108 -fi "$FORMAT" \ -109 -legacy_icecast 1 \ -110 -content_type audio/mpeg \ -111 -ice_name "$ICENAME" \ -112 -ice_description "$ICEDESC" \ -113 icecast://source:$ICECAST -114 } +105 ICEPASS="$(readXML password $XML)" +106 FORMAT_IN="$(readXML input_format $XML)" +107 FORMAT_OUT="$(readXML output_format $XML)" +108 +109 echo ffmpeg \ +110 -fi "$FORMAT_IN" \ +111 -i "$STREAM" \ +112 -fi "$FORMAT_OUT" \ +113 -legacy_icecast 1 \ +114 -content_type audio/mpeg \ +115 -ice_name "$ICENAME" \ +116 -ice_description "$ICEDESC" \ +117 icecast://source:$ICEPASS@$ICECAST +118 }
@@ -127,26 +131,26 @@
    streamproxy
 

SOURCE

-
125 #Проверка аргументов
-126 if [ -z $1 ]; then
-127         echo "USAGE: $0 <xml>"
-128         exit 1
-129 fi
-130 
-131 #Файл настроек
-132 XML="$1"
-133 
-134 #Проверка использования прокси
-135 PROXY=$(readXML proxy "$XML")
-136 
-137 if [ "$PROXY" == 1 ]; then
-138         proxyCMD
-139 fi
+
129 #Проверка аргументов
+130 if [ -z $1 ]; then
+131         echo "USAGE: $0 <xml>"
+132         exit 1
+133 fi
+134 
+135 #Файл настроек
+136 XML="$1"
+137 
+138 #Проверка использования прокси
+139 PROXY=$(readXML proxy "$XML")
+140 
+141 if [ "$PROXY" == 1 ]; then
+142         proxyCMD
+143 fi
 
diff --git a/doc/streamsaver.html b/doc/streamsaver.html index 241e432..621b731 100644 --- a/doc/streamsaver.html +++ b/doc/streamsaver.html @@ -248,7 +248,7 @@ 200 enableOption input_channel -map %% 201 enableOption archive_log \ 202 -segment_list %% \ -203 -segment_list_entry_prefix "${config[archive_dir]}" \ +203 -segment_list_entry_prefix "$(eval echo ${config[archive_dir]})" \ 204 -segment_list_type csv \ 205 -segment_list_flags live 206 @@ -259,13 +259,13 @@ 211 -fi segment \ 212 -segment_time "${config[archive_time]}" \ 213 -segment_format "${config[output_format]}" \ -214 -strftime 1 "${config[archive_dir]}/$FILE_NAME" +214 -strftime 1 "$(eval echo ${config[archive_dir]})/$FILE_NAME" 215 216 # АНАЛИЗ 217 enableOption input_channel -map %% 218 enableOption slices_log \ 219 -segment_list %% \ -220 -segment_list_entry_prefix "${config[slices_dir]}" \ +220 -segment_list_entry_prefix "$(eval echo ${config[slices_dir]})" \ 221 -segment_list_type csv \ 222 -segment_list_flags live 223 @@ -276,7 +276,7 @@ 228 -fi segment \ 229 -segment_time "${config[slices_time]}" \ 230 -segment_format "${config[output_format]}" \ -231 -strftime 1 "${config[slices_dir]}/$FILE_NAME" +231 -strftime 1 "$(eval echo ${config[slices_dir]})/$FILE_NAME" 232 233 echo "$CMD" 234 } @@ -370,6 +370,7 @@

       <!-- Директория для сохранения архивных файлов -->
+       <!-- Может содержать переменную $DATA (текущую дату) -->
        <archive_dir>FILES/archive/</archive_dir>
        <!-- Длительность архивных файлов в секундах -->
        <archive_time>3600</archive_time>
@@ -404,7 +405,7 @@
 

SOURCE

-
342 SETTINGS="$1"
+
343 SETTINGS="$1"
 

@@ -416,35 +417,49 @@
    streamsaver
 

SOURCE

-
353 #Проверка на наличие файла настроек
-354 if [ -z "$SETTINGS" ]; then
-355         echo "USAGE: $(basename $0) <settings.xml>" >&2
-356         exit 1
-357 elif [ ! -r "$SETTINGS" ]; then
-358         echo "Unable open file $1." >&2
-359         echo "USAGE: $(basename $0) <settings.xml>" >&2
-360         exit 1
-361 fi
-362 
-363 #Чтение настроек
-364 readXML "$SETTINGS"
-365 
-366 #Создание директорий хранения файлов, если требуется
-367 mkdir -p ${config[archive_dir]}
-368 mkdir -p ${config[slices_dir]}
+
354 #Проверка на наличие файла настроек
+355 if [ -z "$SETTINGS" ]; then
+356         echo "USAGE: $(basename $0) <settings.xml>" >&2
+357         exit 1
+358 elif [ ! -r "$SETTINGS" ]; then
+359         echo "Unable open file $1." >&2
+360         echo "USAGE: $(basename $0) <settings.xml>" >&2
+361         exit 1
+362 fi
+363 
+364 #Чтение настроек
+365 readXML "$SETTINGS"
+366 
+367 #Текущая дата
+368 DATE="$(\date +%F)"
 369 
-370 if [ ${config[proxy]} == 1 ]; then
-371         config[stream]="${config[icecast]}/${config[mountpoint]}"
-372         config[icecast]=""
-373 fi
-374 
-375 #Создание команды оцифровки сигнала
-376 makeCMD | sh
+370 #Создание директорий хранения файлов за текущую дату, если требуется
+371 [ ! -z ${config[archive_dir]} ] && mkdir -p "$(eval echo ${config[archive_dir]})"
+372 [ ! -z ${config[slices_dir]}  ] && mkdir -p "$(eval echo ${config[slices_dir]})"
+373 
+374 #Дата следующего дня
+375 DATE="$(\date --date='tomorrow' +%F)"
+376 
+377 #Создание директорий хранения файлов на следующий день
+378 [ ! -z ${config[archive_dir]} ] && mkdir -p "$(eval echo ${config[archive_dir]})"
+379 [ ! -z ${config[slices_dir]}  ] && mkdir -p "$(eval echo ${config[slices_dir]})"
+380 
+381 #Если используется прокси, то сигнал будет приниматься с соответствующего Icecast
+382 if [ ${config[proxy]} == 1 ]; then
+383         config[stream]="http://${config[icecast]}/${config[mountpoint]}"
+384         config[input_format]="${config[output_format]}"
+385         config[output_format]="copy"
+386         config[input_channel]=""
+387         config[icecast]=""
+388 fi
+389 
+390 #Создание команды оцифровки сигнала
+391 makeCMD
 
diff --git a/doc/tobo_toplevel.html b/doc/tobo_toplevel.html index 33a3953..6b56584 100644 --- a/doc/tobo_toplevel.html +++ b/doc/tobo_toplevel.html @@ -33,7 +33,7 @@

A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9

diff --git a/doc/toc_index.html b/doc/toc_index.html index 11e15d8..df36f7e 100644 --- a/doc/toc_index.html +++ b/doc/toc_index.html @@ -47,7 +47,7 @@ diff --git a/settings/archive.xml b/settings/archive.xml index 365b164..2569c7e 100644 --- a/settings/archive.xml +++ b/settings/archive.xml @@ -10,7 +10,7 @@ s16le - /tmp/RT/FILES/archive/DAB02/CH01/ + /tmp/RT/FILES/archive/$DATE/DAB02/CH01/ 3600 diff --git a/streamsaver b/streamsaver index 82e0413..f0ea463 100755 --- a/streamsaver +++ b/streamsaver @@ -200,7 +200,7 @@ makeCMD() { enableOption input_channel -map %% enableOption archive_log \ -segment_list %% \ - -segment_list_entry_prefix "${config[archive_dir]}" \ + -segment_list_entry_prefix "$(eval echo ${config[archive_dir]})" \ -segment_list_type csv \ -segment_list_flags live @@ -211,13 +211,13 @@ makeCMD() { -f segment \ -segment_time "${config[archive_time]}" \ -segment_format "${config[output_format]}" \ - -strftime 1 "${config[archive_dir]}/$FILE_NAME" + -strftime 1 "$(eval echo ${config[archive_dir]})/$FILE_NAME" # АНАЛИЗ enableOption input_channel -map %% enableOption slices_log \ -segment_list %% \ - -segment_list_entry_prefix "${config[slices_dir]}" \ + -segment_list_entry_prefix "$(eval echo ${config[slices_dir]})" \ -segment_list_type csv \ -segment_list_flags live @@ -228,7 +228,7 @@ makeCMD() { -f segment \ -segment_time "${config[slices_time]}" \ -segment_format "${config[output_format]}" \ - -strftime 1 "${config[slices_dir]}/$FILE_NAME" + -strftime 1 "$(eval echo ${config[slices_dir]})/$FILE_NAME" echo "$CMD" } @@ -311,6 +311,7 @@ config=( # mp2 -map 0:0 # # +# # FILES/archive/ # # 3600 @@ -363,10 +364,21 @@ fi #Чтение настроек readXML "$SETTINGS" -#Создание директорий хранения файлов, если требуется -mkdir -p ${config[archive_dir]} -mkdir -p ${config[slices_dir]} +#Текущая дата +DATE="$(\date +%F)" +#Создание директорий хранения файлов за текущую дату, если требуется +[ ! -z ${config[archive_dir]} ] && mkdir -p "$(eval echo ${config[archive_dir]})" +[ ! -z ${config[slices_dir]} ] && mkdir -p "$(eval echo ${config[slices_dir]})" + +#Дата следующего дня +DATE="$(\date --date='tomorrow' +%F)" + +#Создание директорий хранения файлов на следующий день +[ ! -z ${config[archive_dir]} ] && mkdir -p "$(eval echo ${config[archive_dir]})" +[ ! -z ${config[slices_dir]} ] && mkdir -p "$(eval echo ${config[slices_dir]})" + +#Если используется прокси, то сигнал будет приниматься с соответствующего Icecast if [ ${config[proxy]} == 1 ]; then config[stream]="http://${config[icecast]}/${config[mountpoint]}" config[input_format]="${config[output_format]}" @@ -376,7 +388,7 @@ if [ ${config[proxy]} == 1 ]; then fi #Создание команды оцифровки сигнала -makeCMD | sh +makeCMD #*****