Sida 1 av 2
Videokonverteringsprogram
Postat: 11 maj 2007, 19:08
av Magnuntu
Tjo
Nu har jag suttit och lärt mig lite bash, och lyckats komma fram till ett någorlunda fungerande program som kan konvertera olika videoformat till andra format. Kommentera gärna på allt möjligt, till och med om detta är fel forum.
Installationsinstruktioner
- Kopiera koden nedan till en ny fil med namned
bashvidc någonstans på datorn.
- Öppna terminalen
- Bläddra till rätt mapp med
cd
- Skriv
./bashvidc
- Prova på! Men säkerhetskopiera dina videofiler först!
Kod: Markera allt
#!/bin/bash
#
# OBS! This program is intended for people who understands Swedish.
#
# bashvidc
# Magnonos Terminalsbaserade Videokonverteringsprogram
# Version 0.1
# 2007-05-11
# http://magnonos.com
#
# Programmet finns tillgängligt under GNU GPL
# http://www.gnu.org/licenses/gpl.txt
#
# OBS! Magnonos kan inte på något sätt garantera
# att detta program inte förstör din dator. Skapa
# ALLTID en säkerhetskopia innan du börjar fixa
# och använda ett program från Magnonos.
#
# Detta program följer inte några som helst
# standards vad gäller kodningsformat. Det är inte
# heller optimerat på andra sätt. Programmet är
# skapat i träningssyfte.
#
echo "Välkommen till Magnonos Terminalsbaserade Videokonverteringsprogram version 0.1"
OPTIONS="Konvertera Hjälp Avsluta"
select opt in $OPTIONS; do
if [ "$opt" = "Konvertera" ]; then
DIR=/home/användare
FE=avi
FN=movie
NF=mpg
echo "1. Om filen är placerad i $DIR, tryck enter. Annars, skriv in sökvägen (Ex: '/sök/väg/till'):"
read DIRR
if [ "$DIRR" != "" ]; then
DIR=$DIRR
fi
echo "2. Om ändelesen är .avi, tryck enter. Annars, skriv in ändelsen (Ex: 'avi', 'flv' eller 'wmv'):"
read FEE
if [ "$FEE" != "" ]; then
FE=$FEE
fi
echo "3. Skriv in filnamnet (Ex: 'minfilm' eller 'semester'):"
read FNN
if [ "$FNN" != "" ]; then
FN=$FNN
fi
echo "4. Nytt filformat ('dvdmpg', 'mpg', 'avi', 'flv'):"
read NFF
if [ "$NFF" != "" ]; then
NF=$NFF
fi
HALF="$DIR/$FN"
FULL="$HALF.$FE"
## Konvertera
if [ "$NFF" = "dvdmpg" ]; then
ffmpeg -i $FULL -aspect 16:9 -target pal-dvd $HALF.mpg
elif [ "$NFF" = "mpg" ]; then
ffmpeg -i $FULL -ab 128 -b 1200 -s 320x240 $HALF.mpg
elif [ "$NFF" = "avi" ]; then
ffmpeg -i $FULL -ab 128 -b 1200 -s 320x240 -vcodec mpeg4 $HALF.avi
elif [ "$NFF" = "flv" ]; then
ffmpeg -i $FULL -y -f flv -ar 44100 -ab 64 -ac 1 -acodec mp3 $HALF.flv
fi
echo "---$FN har konverterats från $FE till $NF"
elif [ "$opt" = "Hjälp" ]; then
echo "Besök http://magnonos.com/bashvidc för hjälp"
elif [ "$opt" = "Avsluta" ]; then
echo "Hej då!"
exit
else
echo "Jag tror att du valde ett alternativ som inte finns, eller hur?"
fi
done
Lycka till, och hoppas att detta kan komma till nytta. Om jag får konstruktiv kritik och förslag på förbättringar kommer jag så klart att fortsätta utveckla programmet, eftersom jag har skrivit det för att lära mig. Detta var mitt första skript över huvudtaget i bash.
SV: Videokonverteringsprogram
Postat: 11 maj 2007, 21:46
av Bossieman
SV: Videokonverteringsprogram
Postat: 11 maj 2007, 22:05
av Magnuntu
Tack för att du ville prova
Felet är (vilket jag nog kanske får förtydliga i nästa version) att i sökvägen har du skrivit sökvägen till filen, och inte bara katalogen. Det ska alltså stå:
/400Gb/Nerladdat istället för
/400Gb/Nerladdat/day.break... (om inte katalogen heter det förstås).
EDIT:
Dessutom ser jag att filen inte ens heter
daybreaks01e05, utan
daybreaks01e05.hdtv.xvid-xor.avi. Detta innebär att du vid de olika förfrågningarna ska svara:
1. "/400Gb/Nerladdat"
2. "avi" eller lämna tomt
3. "daybreaks01e05.hdtv.xvid-xor"
4. "flv"
Hoppas det hjälper

SV: Videokonverteringsprogram
Postat: 11 maj 2007, 22:07
av Bossieman
Hmm, ok ska testa det igen. Återkommer.
SV: Videokonverteringsprogram
Postat: 11 maj 2007, 22:14
av Bossieman
Ok, testade igen och detta hände:
leif@Dimension-5000:~/.gnome2/nautilus-scripts$ ./Video2
Välkommen till Magnonos Terminalsbaserade Videokonverteringsprogram version 0.1
1) Konvertera
2) Hjälp
3) Avsluta
#? 1
1. Om filen är placerad i /home/användare, tryck enter. Annars, skriv in sökvägen (Ex: '/sök/väg/till'):
/home/leif/Desktop
2. Om ändelesen är .avi, tryck enter. Annars, skriv in ändelsen (Ex: 'avi', 'flv' eller 'wmv'):
3. Skriv in filnamnet (Ex: 'minfilm' eller 'semester'):
test
4. Nytt filformat ('dvdmpg', 'mpg', 'avi', 'flv'):
flv
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2004 Fabrice Bellard
configuration: --enable-gpl --enable-pp --enable-pthreads --enable-vorbis --enable-libogg --enable-a52 --enable-dts --enable-libgsm --enable-dc1394 --disable-debug --enable-shared --prefix=/usr
libavutil version: 0d.49.0.0
libavcodec version: 0d.51.11.0
libavformat version: 0d.50.5.0
built on Jan 28 2007 22:48:38, gcc: 4.1.2 20070106 (prerelease) (Ubuntu 4.1.1-21ubuntu7)
/home/leif/Desktop/test.avi: I/O error occured
Usually that means that input file is truncated and/or corrupted.
---test har konverterats från avi till flv
SV: Videokonverteringsprogram
Postat: 11 maj 2007, 22:22
av Magnuntu
Hm... Är det säkert att filen finns? Vad är filens fulla sökväg (med tillägg)?
SV: Videokonverteringsprogram
Postat: 11 maj 2007, 22:29
av Bossieman
har följande på mitt skrivbord.
leif@Dimension-5000:~/Desktop$ ls
day.break.s01e05.hdtv.xvid-xor.avi
leif@Dimension-5000:~/Desktop$
Ditt skript ligger i /home/leif/.gnome2/nautilus-scripts/
SV: Videokonverteringsprogram
Postat: 11 maj 2007, 22:34
av Magnuntu
Du ska då svara:
1. "/home/leif/Desktop"
2. "avi" eller lämna tomt
3. "day.break.s01e05.hdtv.xvid-xor"
4. "flv"
SV: Videokonverteringsprogram
Postat: 11 maj 2007, 22:39
av Bossieman
Fick detta nu samt en 0 byte stor fil på skrivbordet med namnet day.break.s01e05.hdtv.xvid-xor.flv
[img width=150 height=135]http://img527.imageshack.us/img527/2349/skrmbildsb1.th.png[/img]
SV: Videokonverteringsprogram
Postat: 11 maj 2007, 22:50
av Magnuntu
Så. Då var det rätt inskrivet i alla fall.

Problemet är väl nu då att du inte har den codec som krävs. Jag vet faktiskt inte vilken det är, men det lär ju ha med flash att göra...
Förresten, hur får man så där snygga skrivbord?

SV: Videokonverteringsprogram
Postat: 12 maj 2007, 00:11
av Bossieman
SV: Videokonverteringsprogram
Postat: 12 maj 2007, 10:01
av Trill
Får samma problem här.
libavutil version: 0d.49.0.0
libavcodec version: 0d.51.11.0
libavformat version: 0d.50.5.0
Man kan ju kolla om de är installerade i början av scriptet och om de inte är installerade så kanske man installerade de via apt-?
Funkar det för dig Mange_Muck?
Har letat efter ett sånt här script ett tag faktiskt.
Edit: Funkar inte att installera libavutil eller libavcodec via sudo apt-get install.
SV: Videokonverteringsprogram
Postat: 12 maj 2007, 12:20
av Magnuntu
Jag ska kolla om jag kan lägga in något sådant. Den här helgen ska jag installera om Ubuntu, så då ska jag hålla mer koll på vilka codecs jag installerar

SV: Videokonverteringsprogram
Postat: 13 maj 2007, 14:40
av Sprak
Fungerar finfint för mig
Tack för ett bra program!
Nästa steg blir att göra det grafiskt antar jag? (De tre första frågorna skulle bara bli till en enda om man använde sig av standartfilöppnaren)
SV: Videokonverteringsprogram
Postat: 13 maj 2007, 15:27
av Magnuntu
Tackar
Jag har planerat att:
- lägga till fler stödda format
- skapa dvd (redan tillagt, men efter ominstallation är filen korrupt...)
- installera codecs som behövs, från programmet
När jag kollade på grafisk programmering i Windows gav jag upp efter några minuter, alldelse för krångligt. Är det likadant i linux? Tipsa gärna

SV: Videokonverteringsprogram
Postat: 13 maj 2007, 16:57
av Mekaniserad Apelsin
Blir det bättre om koden
elif [ "$NFF" = "flv" ]; then
ffmpeg -i $FULL -y -f flv -ar 44100 -ab 64 -ac 1 -acodec mp3 $HALF.flv
fi
ändras till
elif [ "$NFF" = "flv" ]; then
ffmpeg -i $FULL -y -f flv -ab 128 $HALF.flv
fi
?
SV: Videokonverteringsprogram
Postat: 13 maj 2007, 17:09
av Magnuntu

Ja tack. Det gör ju att inget format är bestämt, utan den använder standarden vilken troligtvis är förinstallerad. Hur som helst ska jag läsa på mer om detta.
SV: Videokonverteringsprogram
Postat: 13 maj 2007, 20:30
av Magnuntu
Hm... Jag kan inte redigera min första post...
# # # Version 0.2
# - DVD-skapare
# - Smartare interaktivitet
# - FLV ljud-codec satt till standard
# - Support för WMV
# - Ej överskrivning som standard
Kod: Markera allt
#!/bin/bash
#
# OBS! This program is intended for people who understands Swedish.
#
# bashvidc
# Magnonos Terminalbaserade Videokonverteringsprogram
# Version 0.2
# 2007-05-13
# http://magnonos.com
#
# Programmet finns tillgängligt under GNU GPL
# http://www.gnu.org/licenses/gpl.txt
#
# OBS! Magnonos kan inte på något sätt garantera
# att detta program inte förstör din dator. Skapa
# ALLTID en säkerhetskopia innan du börjar fixa
# och använda ett program från Magnonos.
#
# Detta program följer inte några som helst
# standards vad gäller kodningsformat. Det är inte
# heller optimerat på andra sätt. Programmet är
# skapat i träningssyfte.
#
echo ""
echo "/#########################################################\\"
echo "|#| Välkommen till BASHVIDC |#|"
echo "|#| Magnonos Terminalbaserade Videokonverteringsprogram |#|"
echo "|#| Version 0.2 [2007-05-13] |#|"
echo "\#########################################################/"
PREF="\033[1m### ->>> BASHVID säger...\033[0m"
OPTIONS="Konvertera DVD Kriterier Hjälp Avsluta"
select opt in $OPTIONS; do
if [ "$opt" = "Konvertera" ]; then
DIR=/var
FE=avi
FN=movie
NF=mpg
echo -e "$PREF 1. Om filen är placerad i $DIR, tryck ENTER. Annars, skriv in sökvägen (Ex: '/sök/väg/till'): "
read DIRR
if [ "$DIRR" != "" ]; then
DIR=$DIRR
fi
echo -e "$PREF 2. Skriv in filnamnet utan ändelse (Ex: 'minfilm' eller 'semester'): "
read FNN
if [ "$FNN" != "" ]; then
FN=$FNN
fi
echo -e "$PREF 3. Om ändelesen är .avi, tryck ENTER. Annars, skriv in ändelsen (Ex: 'avi', 'flv' eller 'wmv'): "
read FEE
if [ "$FEE" != "" ]; then
FE=$FEE
fi
echo -e "$PREF 4. Nytt filformat ('dvdmpg', 'mpg', 'avi', 'flv', 'wmv'): "
read NFF
if [ "$NFF" != "" ]; then
NF=$NFF
fi
HALF="$DIR/$FN"
FULL="$HALF.$FE"
echo -e "$PREF 5. Vill du konvertera '$FULL' (j/n)"
read VALD
if [ "$VALD" = "n" ]; then
echo -e "$PREF $FN har INTE konverterats"
else
CONVSUC="$PREF $FN har konverterats från $FE till $NF \a"
## Konvertera
if [ "$NFF" = "dvdmpg" ]; then
ffmpeg -i $FULL -aspect 16:9 -target pal-dvd $HALF.mpg
echo -e "$CONVSUC"
elif [ "$NFF" = "mpg" ]; then
ffmpeg -i $FULL -ab 128 -b 1200 -s 320x240 $HALF.mpg
echo -e "$CONVSUC"
elif [ "$NFF" = "avi" ]; then
ffmpeg -i $FULL -ab 128 -b 1200 -s 320x240 -vcodec mpeg4 $HALF.avi
echo -e "$CONVSUC"
elif [ "$NFF" = "flv" ]; then
ffmpeg -i $FULL -ab 128 $HALF.flv
echo -e "$CONVSUC"
elif [ "$NFF" = "wmv" ]; then
ffmpeg -i $FULL -vcodec wmv1 $HALF.wmv
echo -e "$CONVSUC"
else
echo -e "$PREF Konvertering till $NF stöds inte"
fi
fi
elif [ "$opt" = "DVD" ]; then
DIR=/var
NAMN=dvd
function titel {
echo -e "$PREF Lägg till en titel från '$DIR' utan filändelse, eller lämna tomt för att fortsätta: "
read TIT
if [ "$TIT" != "" ]; then
dvdauthor -o $DIR/$NAMN/ -t $DIR/$TIT.mpg
titel
fi
}
echo -e "$PREF Om titlarna är placerade i $DIR, tryck ENTER. Annars, skriv in sökvägen (Ex: '/sök/väg/till'): "
read DIRR
if [ "$DIRR" != "" ]; then
DIR=$DIRR
fi
echo -e "$PREF Döp din DVD (Ex: 'mindvd' eller 'semesterdvd'): "
read NAMNN
if [ "$NAMNN" != "" ]; then
NAMN=$NAMNN
fi
titel
dvdauthor -o $DIR/$NAMN/ -T
echo -e "$PREF En DVD har skapats av '$DIR/$NAMN/'"
echo -e "$PREF Vill du skapa en ISO-fil? (j/n)"
read VALD
if [ "$VALD" = "n" ]; then
echo -e "$PREF Ingen ISO-fil har skapats"
else
mkisofs -dvd-video -v -o $DIR/$NAMN.iso $DIR/$NAMN
echo -e "$PREF En ISO-fil har skapats i '$DIR'."
fi
elif [ "$opt" = "Kriterier" ]; then
echo -e "$PREF FFmpeg måste vara installerat för att kunna köra bashvidc"
elif [ "$opt" = "Hjälp" ]; then
echo -e "$PREF Besök http://magnonos.com/bashvidc för hjälp"
elif [ "$opt" = "Avsluta" ]; then
echo -e "$PREF Hej då!"
exit
else
echo -e "$PREF Jag tror att du valde ett alternativ som inte finns, eller hur?"
fi
done
# # # # ÄNDRINGSLOGG
#
# # # Version 0.2
# - DVD-skapare
# - Smartare interaktivitet
# - FLV ljud-codec satt till standard
# - Support för WMV
# - Ej överskrivning som standard
#
# # # Version 0.1
# - Konvertering: MPG, AVI, FLV, WMV till DVD-MPG, MPG, AVI, FLV
# - 4-stegs datainmatning
# - Smart interaktivitet
#
# # # # #
SV: Videokonverteringsprogram
Postat: 13 maj 2007, 21:56
av Mekaniserad Apelsin
istället för att fårga om originalfilens filändelse för sig skulle nog programmet förbättras av att inte fråga i tre steg om filen utan bara en: Exakt var ligger filen och vad heter den: /home/blahonga/smurfattack.avi
och sedan använda file för att ta reda på vad för fil det är egentligen.
SV: Videokonverteringsprogram
Postat: 14 maj 2007, 18:52
av Trill
Funkar perfekt nu!:D