Konwenter *avi to *mp4

Grafika, film, dźwięk.
soon
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 12 sie 2007, 15:43
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Konwenter *avi to *mp4

Post autor: soon »

Witam,

tak jak w temacie, szukam konwentera z avi do formatu mp4 pod ubuntu. Tak, żebym przerobione filmy mógł wgrywać na telefon.
Awatar użytkownika
niggazzz
Piegowaty Guziec
Piegowaty Guziec
Posty: 15
Rejestracja: 05 sie 2006, 13:21
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: GNOME

Odp: Konwenter *avi to *mp4

Post autor: niggazzz »

Np. WinFF
Awatar użytkownika
uel
Przyjaciel
Przyjaciel
Posty: 126
Rejestracja: 19 mar 2006, 01:27
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Kontakt:

Odp: Konwenter *avi to *mp4

Post autor: uel »

Skorzystaj z gotowego skryptu (graficzna powłoka).
Owierasz edytor tekstu (np gedit), wklejasz poniższy skrypt i zapisujesz pod nazwą avi-mp4 w swoim katalogu domowym:

Kod: Zaznacz cały

# Author: TuTUX
# This script converts FLV/RM/MPEG/... to AVI/MP4 files.
# Dependency: ffmpeg, mencoder, gstreamer...
# ToDo: you tell me.
# Distributed under the terms of GNU GPL version 2 or later
#
# You need to be running Nautilus 1.0.3+ to use scripts.
#
#!/bin/bash

newname="New file name"
title="video convert (flv/avi/mpeg/rm to avi/mpeg-4)"
titlewh="Resolution of input video"
Wide="wide"
High="height"
avi_codec="Choose output codec"
audio_codec="Choose output audio"
bit_rate="Choose the bitrate of video (700 if mp4)"
abit="mp3 bitrate"
audio="audio encode(MPEG-4 will stick to acc)"
wrong="wrong input, skipping"
warning="huh?"
wide=640
high=480
tmp=0
tmp1=0
tmp2=0
bar1=0
bar=0
bar2=0
consw="640"
#encoding functions
iftowide()
{
ffmpeg -i "$1" -target ntsc-dvd  -padtop "$((bar1))" -padbottom "$((bar2))" -s "$wide"x"$high" -aspect 4:3 -b 1152 -padcolor 000000 -acodec copy "`basename "$1"`.mpg"
}
wh()
{
wide=`gdialog --title "$titlewh" --inputbox "$Wide" 200 100 2>&1`
high=`gdialog --title "$titlewh" --inputbox "$High" 200 100 2>&1`
tmp=wide/4
tmp1=tmp*3
tmp2=tmp1-high
if [ $((tmp2%4)) -eq 0 ]; then
bar1=tmp2/2
bar2=bar1
else
bar=tmp2/2
bar1=bar+1
bar2=bar-1
fi
}

DivXmp3_encode()
{
mencoder "$1" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate="$get_bitrate":mbd=2:v4mv:autoaspect -vf pp=lb -oac mp3lame -lameopts cbr:br="$get_audio" -o "`basename "$1"`.avi"
}
DivXAC_encode()
{
mencoder "$1" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate="$get_bitrate":mbd=2:v4mv:autoaspect -vf pp=lb -channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384 -o  "`basename "$1"`.avi"
}
XviDmp3_encode()
{
mencoder "$1" -ovc xvid -xvidencopts bitrate="$get_bitrate":autoaspect -vf pp=lb -oac mp3lame -lameopts cbr:br="$get_audio" -o "`basename "$1"`.avi"
}
XviDAC_encode()
{
mencoder "$1" -ovc xvid -xvidencopts bitrate="$get_bitrate":autoaspect -vf pp=lb -channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384 -o  "`basename "$1"`.avi"
}
MP4_encode()
{
ffmpeg -i "$1" -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -ab 160 -ar 48000 -s 640x480 -aspect 4:3 "`basename "$1"`.mp4"
}
MP4()
{
if file "$1" | grep -q "Macromedia Flash Video"; then
     get_audio="64"
     DivXmp3_encode "$1"
     MP4_encode "$1.avi"
     rm -f "$1.avi"
     elif file "$1" | grep -q "RealMedia file"; then
     get_audio="128"
     DivXmp3_encode "$1"
     MP4_encode "$1.avi"
     rm -f "$1.avi"
      else
      MP4_encode "$1"
      fi 
}
MP4w()
{
if [ "$((wide))" -gt "$consw" ] ; then
    if file "$1" | grep -q "RealMedia file"; then
     get_audio="128"
     DivXmp3_encode "$1"
     iftowide "$1.avi"
     rm -f "$1.avi"
     MP4_encode "$1.avi.mpg"
     rm -f "$1.avi.mpg"
     else
     iftowide "$1"
     MP4_encode "$1.mpg"
    rm -f "$1.mpg"
     fi
else
    if file "$1" | grep -q "Macromedia Flash Video"; then
          get_audio="64"
     DivXmp3_encode "$1"
     MP4W_encode "$1.avi"
     rm -f "$1.avi"
     elif file "$1" | grep -q "RealMedia file"; then
     get_audio="128"
     DivXmp3_encode "$1"
     MP4W_encode "$1.avi"
     rm -f "$1.avi"
      else
      MP4W_encode "$1"
      fi 
fi
}
MP4W_encode()
{
ffmpeg -i "$1" -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -ab 160 -ar 48000 -padtop "$((bar1))" -padbottom "$((bar2))" -s "$wide"x"$high" -aspect 4:3 -padcolor 000000 "`basename "$1"`.mp4"
}

#General
get_codec=`zenity --title="$title" --list --radiolist --column="" --column="$avi_codec" FALSE "DivX" TRUE "XviD" FALSE "MPEG-4" FALSE "MPEG-4 from widescreen"`
get_bitrate=`zenity --title="$get_codec" --list --radiolist --column="" --column="$bit_rate" FALSE "2500" FALSE "1800" FALSE "1152" TRUE "700" FALSE "500" `
#todo if mp4 widescreen or not
case "$get_codec" in
DivX)
get_acode=`zenity --title="$audio" --list --radiolist --column="" --column="$audio_codec" FALSE "AC3 5.1" TRUE "mp3lame" `
       case "$get_acode" in
       mp3lame)
       get_audio=`zenity --title="$audio" --list --radiolist --column="" --column="$abit" FALSE "320" FALSE "192" FALSE "160" TRUE "128" FALSE "64" `
       ;;
       esac
;;
XviD)
get_acode=`zenity --title="$audio" --list --radiolist --column="" --column="$audio_codec" FALSE "AC3 5.1" TRUE "mp3lame" `
       case "$get_acode" in
       mp3lame)
       get_audio=`zenity --title="$audio" --list --radiolist --column="" --column="$abit" FALSE "320" FALSE "192" FALSE "160" TRUE "128" FALSE "64" `
       ;;
       esac
;;
"MPEG-4 from widescreen")
wide=`gdialog --title "$titlewh" --inputbox "$Wide" 200 100 2>&1`
high=`gdialog --title "$titlewh" --inputbox "$High" 200 100 2>&1`
tmp=wide/4
tmp1=tmp*3
tmp2=tmp1-high
if [ $((tmp2%4)) -eq 0 ]; then
bar1=tmp2/2
bar2=bar1
else
bar=tmp2/2
bar1=bar+1
bar2=bar-1
fi
#gdialog --title "$((bar1))" --inputbox "$((bar2))" 200 100 2>&1
;;
esac

#General
while [ "$1" ]; do
  case "$get_codec" in        
     MPEG-4)
     MP4 "$1"  
     ;;
     "MPEG-4 from widescreen")
     MP4w "$1"
     ;;
        DivX)
       case "$get_acode" in
       mp3lame)
       DivXmp3_encode "$1"
       ;;
       "AC3 5.1")
       DivXAC_encode "$1"
       ;;
       esac
     ;;
     XviD)
        case "$get_acode" in
        mp3lame)
        XviDmp3_encode "$1"
        ;;
        "AC3 5.1")
        XviDAC_encode "$1"
        ;;
        esac
     ;;
   esac
   shift
done
Nadajesz plikowi prawa do wykonywalności:

Kod: Zaznacz cały

chmod +x avi-mp4
uruchamiasz i uzupełniasz lokalizacje w poniższym poleceniu na własne:

Kod: Zaznacz cały

./avi-mp4 plik.avi plik.mp4
Wielkie czyny powstają z wielkich marzeń.
Przed założeniem tematu zapoznaj się z regulaminem
bądź skonsultuj z moderatorem lub administratorem.

Obrazek
soon
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 12 sie 2007, 15:43
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: Konwenter *avi to *mp4

Post autor: soon »

niggazzz pisze:Np. WinFF
zapomniałem dodać ze architektura 64bit :)

EDIT:

coś nie tak jest:
soon@soon-desktop:~$ ./avi-mp4 get_video.avi plik.mp4
/home/soon/.themes/Glory-Simplex/gtk-2.0/gtkrc:540: Nie można odnaleźć pliku z obrazem na ścieżce: "Menu-Menubar/menuline.png"
/home/soon/.themes/Glory-Simplex/gtk-2.0/gtkrc:543: Background image options specified without filename
/home/soon/.themes/Glory-Simplex/gtk-2.0/gtkrc:540: Nie można odnaleźć pliku z obrazem na ścieżce: "Menu-Menubar/menuline.png"
/home/soon/.themes/Glory-Simplex/gtk-2.0/gtkrc:543: Background image options specified without filename
./avi-mp4: line 56: mencoder: polecenie nieodnalezione
./avi-mp4: line 72: ffmpeg: polecenie nieodnalezione
./avi-mp4: line 72: ffmpeg: polecenie nieodnalezione
soon@soon-desktop:~$
losLenivcos
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 13 paź 2006, 23:29
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: GNOME
Kontakt:

Odp: Konwenter *avi to *mp4

Post autor: losLenivcos »

Witma.
Jeśli jest jeszcze ktoś zainteresowany tym tematem to polecam najnowszego avidemux'a z gedDEB. Wystarczy otworzyć w nim plik źródłowy wybrać automatyczną opcję kodowania (?) do "IPOD (mpeg4). Ja zmieniłem jeszcze kodek dźwięku na aac i jakość na 96kb/s. Film chodzi bez zarzutów w sonyericssonie w660i, myślę, że w innych też będzie działał. Można jeszcze pozmieniać ustawienia rozdzielczości i co kto sobie życzy.
Pozdrawiam.
Awatar użytkownika
dk75
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1142
Rejestracja: 07 mar 2007, 22:59
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Konwenter *avi to *mp4

Post autor: dk75 »

robię skrypt do przerabiania na 3GP i MP4 dla telefonów ale potrzebuje on paru dodatkowych programów do działania więc nie wiem czy ktoś będzie reflektował
Awatar użytkownika
inzaghi89
Sędziwy Jeż
Sędziwy Jeż
Posty: 66
Rejestracja: 08 wrz 2007, 22:12
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Kontakt:

Odp: Konwenter *avi to *mp4

Post autor: inzaghi89 »

skorzystałem zarówno ze skryptu uel'a, jak i próbowałem avidemux. Jednakże w obu przypadkach nie wiem jaki kodek video wybrać. Dźwięk zawsze wybieram LAME (czyli od mp3) i zawsze w telefonie mam "Nie można odtworzyć pliku".

Hm nie ważne, już zrobiłem/uporałem się. Video Mpeg4, Audio FAAC
Trititi li li łaaaaa...
Awatar użytkownika
sthoo
Piegowaty Guziec
Piegowaty Guziec
Posty: 17
Rejestracja: 02 wrz 2006, 16:23
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Konwenter *avi to *mp4

Post autor: sthoo »

Witam.
Hmmm. odświeżę nieco wątek jako, że też się z tym trochę grzebałem i na podstawie jednego z postów na forum posklejałem skrypt do konwersji na *.mp4 wraz z cięciem na części ( w SonyEricssonach źle się ogląda półtoragodzinny film, gdy sobie trzeba przerwać, żeby zadzwonić itp. A więc po kolei:

tworzymy sobie folder o nazwie jaka nam się żywnie podoba - na przykład:

Kod: Zaznacz cały

mkdir /home/ty/Wideo/konwersja
tworzymy w nim plik ( za pomocą ulubionego edytora - mój to nano)

Kod: Zaznacz cały

nano /home/ty/Wideo/konwersja/tnij
do pliku wklejamy:

Kod: Zaznacz cały

#!/bin/bash

##Co gdzie jak?
plik_wejsciowy=$1;  ##Jaki plik kroimy
plik_wyjsciowy=$plik_wejsciowy; ##jaka będzie nazwa pliku wyjściowego. Będą dodatkowe numerki, żeby się nie zgubić. 
czas=$2  ##Czas jednego kawałka
skok=$czas ##pomaga przy ustalaniu w którym momencie ma kawałek się zaczynać.
ile=$3  ## ile ma być kawałków. 


##zaczynamy kroić
#pierwsze X minut. Nie ma sensu ładować do pętli
mencoder ${plik_wejsciowy} -ofps 24 -of lavf -lavfopts format=mp4 -af lavcresample=48000:channels=1 -vf-add harddup -vf-add scale=320:-2 -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:acodec=libfaac:abitrate=128:vcodec=mpeg4:vbitrate=384:keyint=25 -sws 9 -endpos 0:${czas}:02 -o 01_${plik_wyjsciowy}.mp4 

numer=2 ##zaczynamy kawałek 2
while [ $numer -le $ile ]; do
    if [ $numer -le 9 ]; then
        ##dla części mniejszych/równych 9 dodaje zero
        mencoder ${plik_wejsciowy} -ofps 24 -of lavf -lavfopts format=mp4 -af lavcresample=48000:channels=1 -vf-add harddup -vf-add scale=320:-2 -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:acodec=libfaac:abitrate=128:vcodec=mpeg4:vbitrate=384:keyint=25 -sws 9 -ss 0:${czas}:0 -endpos 0:${skok}:02 -o 0${numer}_${plik_wyjsciowy}.mp4;
    else
        ##dla reszty już nie
        mencoder ${plik_wejsciowy} -ofps 24 -of lavf -lavfopts format=mp4 -af lavcresample=48000:channels=1 -vf-add harddup -vf-add scale=320:-2 -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:acodec=libfaac:abitrate=128:vcodec=mpeg4:vbitrate=384:keyint=25 -sws 9 -ss 0:${czas}:0 -endpos 0:${skok}:02 -o ${numer}_${plik_wyjsciowy}.mp4;
    fi
numer=$[numer+1];
czas=$[czas+$skok]
done

zapisujemy wciskając CTRL+o, wychodzimy CTRL +x, nadajemy prawa do wykonania:

Kod: Zaznacz cały

chmod +x /home/ty/Wideo/konwersja/tnij
Następnie musimy zorientować się jak długi jest film i na ile części go podzielić (najlepiej odpalić go w MPlayerze i sprawdzić ile ma minut np film trwający 1 godz i 25 minut i 35 sekund to w zaokrągleniu 86 minut, dzielimy po 8 minut wychodzi nam 10,75 części czyli w zaokrągleniu w górę 11 (ostatnia będzie krótsza).
Do folderu wrzucamy interesujący nas film *.avi wchodzimy do niego:

Kod: Zaznacz cały

cd /home/ty/Wideo/konwersja/
wydajemy polecenie:

Kod: Zaznacz cały

./tnij film.avi 8 11
czyli

Kod: Zaznacz cały

./tnij film.avi długość_części ilość części
Idziemy zaparzyć kawę (na AthlonieXP 2500+Barton 1,86 GHz i 1 GB ramu trwa to od 20 do 40 minut w zależności od pliku wejściowego)
Utworzone w folderze pliki mp4 kopiujemy na telefon i oglądamy.
______________________________________________________________________________
sthoo
ODPOWIEDZ

Wróć do „Muzyka, filmy, zdjęcia, grafika”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości