1

Temat: Stream2AVI v0.1 - czyli jak zapisać transmisję strumieniową do AVI ;-)

Niedawno miałem potrzebę zapisania kilku transmisji strumieniowych do plików, po kilku minutach googlania znalazłem komendę generującą "zrzut" strumienia do pliku. Plik jednak był w formacie ASF i dość pokaźnych rozmiarów (kilkaset MB dla 35 minut). Poszukałem więc informacji na temat konwersji do AVI.
Cała operacja przebiegła prawidłowo i otrzymałem plik AVI o wielkości 100 MB o tej samej jakości co wejściowy.
Później doszedłem do wniosku, że warto by napisać skrypt automatyzujący czynność i zapobiegający zapomnieniu komend ;-).
Oto efekt pracy, skrypt Basha (wymaga obecności zainstalowanych programów mencoder i mplayer):

#!/bin/bash

# Stream2AVI v0.1
# (c) 2008 Emdek
# http://emdek.cba.pl
# Licence: GPL

if [ "$1" = "" -o "$2" = "" ]
then
	echo "Podaj nazwe pliku docelowego (.avi) i adres strumienia!"
else
	if [ -e "$1" ]
	then
		echo "Plik docelowy juz istnieje!"
	else
		mplayer -dumpstream $2 &> /dev/null
		if [ $? = 0 ]
		then
			echo "Strumien pobrany pomyslnie."
			mencoder stream.dump -ofps 23.976 -ovc lavc -oac copy -o $1 &> /dev/null
			if [ $? = 0 ]
			then
				echo "Plik przekonwertowany pomyslnie."
				rm stream.dump
			else
				echo "Konwersja do AVI nieudana!"
			fi
		else
			echo "Pobieranie nieudane! Sprawdz poprawnosc adresu pliku."
		fi
	fi
fi

Wywołuje się go z parametrami będącymi nazwą pliku wyjściowego i adres strumienia, np.:

stream2avi.sh test.avi mms:/stream.com

Może komuś się przyda ;-).

Nadszedł już czas, najwyższy czas, nienawiść zniszczyć w sobie.