Pagina 1 di 2

problema ffmpeg durante conversione mpg --> 3gp

Inviato: dom 31 dic 2006, 15:12
da danix
Salve a tutti,
ho installato ffmpeg dal repository di slacky.it e ho installato prima tutte le dipendenze del megapack e poi il tgz del programma vero e proprio, ho lanciato il tutto con questo script:

Codice: Seleziona tutto

ffmpeg -i FILE.mpg -b 500 -acodec amr_nb -ar 8000 -ac 1 -ab 32 -vcodec h263 -s qcif -r 10 FILE.3gp
ma l'output non è stato quello che mi aspettavo...

Codice: Seleziona tutto

FFmpeg version SVN-r7266, Copyright (c) 2000-2006 Fabrice Bellard, et al.
  configuration:  --prefix=/usr --mandir=/usr/man --enable-shared --disable-debug --enable-mp3lame --enable-xvid --enable-a52 --enable-libogg --enable-gpl --enable-dc1394 --enable-pp --enable-faac --enable-faad --enable-dts --enable-libgsm --enable-a52bin --enable-vorbis --enable-faadbin --enable-amr_nb --enable-amr_if2 --enable-amr_wb --enable-pthreads --enable-x264 --enable-swscaler --cpu=i486
  libavutil version: 49.1.0
  libavcodec version: 51.26.0
  libavformat version: 51.6.0
  built on Dec  9 2006 20:11:38, gcc: 3.4.6
Input #0, mpeg, from '/home/da_nix/nokia/3gp/varie/luda.mpg':
  Duration: 00:03:54.6, start: 0.386478, bitrate: 1880 kb/s
  Stream #0.0[0x1e0]: Video: mpeg1video, yuv420p, 352x240, 104857 kb/s, 29.97 fps(r)
  Stream #0.1[0x1c0]: Audio: mp2, 48000 Hz, stereo, 224 kb/s
Output #0, 3gp, to 'prova.3gp':
  Stream #0.0: Video: h263, yuv420p, 176x144, q=2-31, 0 kb/s, 10.00 fps(c)
  Stream #0.1: Audio: amr_nb, 8000 Hz, mono, 32 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop encoding
Compiler did not align stack variables, libavcodec has been misscompiled
and will possible be very slow or may crash, this is not a bug in the
application but in the compiler
so reporting it anywhere but to the compiler maintainers is senseless!
[3gp @ 0xb7ebd640]fatal error, input is not a single packet, inplement a AVParser for it
[3gp @ 0xb7ebd640]fatal error, input is not a single packet, inplement a AVParser for it
[3gp @ 0xb7ebd640]fatal error, input is not a single packet, inplement a AVParser for it
[3gp @ 0xb7ebd640]fatal error, input is not a single packet, inplement a AVParser for it
[3gp @ 0xb7ebd640]fatal error, input is not a single packet, inplement a AVParser for it
[3gp @ 0xb7ebd640]fatal error, input is not a single packet, inplement a AVParser for it
[3gp @ 0xb7ebd640]fatal error, input is not a single packet, inplement a AVParser for it
[3gp @ 0xb7ebd640]fatal error, input is not a single packet, inplement a AVParser for it
[3gp @ 0xb7ebd640]fatal error, input is not a single packet, inplement a AVParser for it
...
Continuava ad andare avanti e ho dovuto fermarlo con "Ctrl+c"...
Pensavo fosse dovuto al fatto che questo script era stato consigliato per convertire un avi in 3gp, allora ho fatto una prova ma il risultato non è cambiato...
qualcuno sa dirmi quale sia il problema??
Ho capito che libavcodec è stato compilato male, ma cosa vuol dire?? Questa libreria è venuta con qualche tgz del megapack, con ffmpeg o l'avevo gia io sul pc??
Come posso rimediare??

Ringrazio anticipatamente tutti coloro che mi aiuteranno...

Inviato: dom 31 dic 2006, 21:26
da gohanz
Forse sarà un problema dei file zip che contengono i codec 3GP. Forse saranno da aggiornare! Bo! :roll:

Inviato: lun 1 gen 2007, 12:53
da a1k
i 3gp non supportano tutti i tipi di risoluzione...
prova cosi:

Codice: Seleziona tutto

mencoder nomefile.mpeg -nosound -ovc lavc -lavcopts vcodec=mpeg4 -vop expand=176:144,scale=176:-2 -o temp.avi -ofps 12

mplayer -vo null -ao pcm -af resample=8000,volume=+4db:sc nomefile.mpeg

ffmpeg -i temp.avi -i audiodump.wav -b 48 -ac 1 -ab 12 -map 0.0 -map 1.0 nomefile.3gp

rm temp.avi audiodump.wav

Inviato: lun 1 gen 2007, 13:57
da gohanz
Ho risolto compilando il codec amr in modalità fixed-point

Adesso la conversione parte

Codice: Seleziona tutto

Input #0, mpeg, from 'Blu.Notte - Il.caso.Alceste.Campanile.mpg':
  Duration: N/A, start: 0.632122, bitrate: N/A
  Stream #0.0[0x1e0]: Video: mpeg1video, yuv420p, 352x288, 1150 kb/s, 25.00 fps(r)
  Stream #0.1[0x1c0]: Audio: mp2, 44100 Hz, stereo, 192 kb/s
Output #0, 3gp, to 'FILE.3gp':
  Stream #0.0: Video: h263, yuv420p, 176x144, q=2-31, 0 kb/s, 10.00 fps(c)
  Stream #0.1: Audio: amr_nb, 8000 Hz, mono, 32 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop encoding
Compiler did not align stack variables. Libavcodec has been miscompiled
and may be very slow or crash. This is not a bug in libavcodec,
but in the compiler. Do not report crashes to FFmpeg developers.
frame= 3594 q=24.8 size=    1372kB time=359.1 bitrate=  31.3kbits/s

Inviato: lun 1 gen 2007, 15:05
da danix
gohanz ha scritto:Ho risolto compilando il codec amr in modalità fixed-point

Adesso la conversione parte

Codice: Seleziona tutto

Input #0, mpeg, from 'Blu.Notte - Il.caso.Alceste.Campanile.mpg':
  Duration: N/A, start: 0.632122, bitrate: N/A
  Stream #0.0[0x1e0]: Video: mpeg1video, yuv420p, 352x288, 1150 kb/s, 25.00 fps(r)
  Stream #0.1[0x1c0]: Audio: mp2, 44100 Hz, stereo, 192 kb/s
Output #0, 3gp, to 'FILE.3gp':
  Stream #0.0: Video: h263, yuv420p, 176x144, q=2-31, 0 kb/s, 10.00 fps(c)
  Stream #0.1: Audio: amr_nb, 8000 Hz, mono, 32 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop encoding
Compiler did not align stack variables. Libavcodec has been miscompiled
and may be very slow or crash. This is not a bug in libavcodec,
but in the compiler. Do not report crashes to FFmpeg developers.
frame= 3594 q=24.8 size=    1372kB time=359.1 bitrate=  31.3kbits/s
adesso provo a ricompilare il codec amr, eventualmente potresti postarmi il procedimento che hai seguito così vedo se ho fatto i passaggi giusti??
alk ha scritto:i 3gp non supportano tutti i tipi di risoluzione...
prova cosi:

Codice: Seleziona tutto

mencoder nomefile.mpeg -nosound -ovc lavc -lavcopts vcodec=mpeg4 -vop expand=176:144,scale=176:-2 -o temp.avi -ofps 12

mplayer -vo null -ao pcm -af resample=8000,volume=+4db:sc nomefile.mpeg

ffmpeg -i temp.avi -i audiodump.wav -b 48 -ac 1 -ab 12 -map 0.0 -map 1.0 nomefile.3gp

rm temp.avi audiodump.wav 
ho provato a seguire il tuo suggerimento prima di ricompilare il codec amr, ma mencoder mi ha restituito questo errore:

Codice: Seleziona tutto

mencoder: error while loading shared libraries: libdv.so.4: cannot open shared object file: No such file or directory
non riesco a capire, ho fatto un'installazione standard al massimo, ho usato pacchetti compilati per la mia distro eppure non ho delle librerie oppure vengono compilate male, non capisco se è un problema della mia distro o cosa... :(

in ogni caso grazie dell'attenzione che mi state riservando, spero riuscirete ad aiutarmi...tanti auguri di buon anno...

Inviato: lun 1 gen 2007, 15:11
da gohanz
Devi cambiare --enable-amr_nb in --enable-amr_nb-fixed \

E scaricare il file http://www.3gpp.org/ftp/Specs/archive/2 ... 73-510.zip

scompattarlo in libavcodec/amr

la dir amr la devi creare

Inviato: lun 1 gen 2007, 15:27
da danix
gohanz ha scritto:Devi cambiare --enable-amr_nb in --enable-amr_nb-fixed \

E scaricare il file http://www.3gpp.org/ftp/Specs/archive/2 ... 73-510.zip

scompattarlo in libavcodec/amr

la dir amr la devi creare
perdona la mia ignoranza, potresti essere un pochino più chiaro??

ho scaricato il file che mi hai detto, ora?? Come procedo??

grazie ancora per la pazienza...

Inviato: lun 1 gen 2007, 15:29
da gohanz
Modifica lo SlackBuild di Slacky in questo modo e mandalo in esecuzione

CWD=`pwd`
TMP=${TMP:-/tmp/tgz}
PKG=$TMP/package
NAME=ffmpeg
VERSION=`date +%Y%m%d`
ARCH=${ARCH:-i686}
BUILD=1sl
SOURCE=http://www.3gpp.org/ftp/Specs/archive/2 ... 04-510.zip

if [ ! -e 26204-510.zip ]; then
wget -c $SOURCE
fi

SOURCE=http://www.3gpp.org/ftp/Specs/archive/2 ... 04-510.zip

if [ ! -e 26104-510.zip ]; then
wget -c $SOURCE
fi

SOURCE=http://www.3gpp.org/ftp/Specs/archive/2 ... 73-510.zip

if [ ! -e 26073-510.zip ]; then
wget -c $SOURCE
fi



if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O3 -march=i686 -pipe -fomit-frame-pointer"
elif [ "$ARCH" = "athlon64" ]; then
SLKCFLAGS="-O2 -march=athlon64 -pipe"
elif [ "$ARCH" = "athlonxp" ]; then
SLKCFLAGS="-O3 -march=athlon-xp -pipe -fomit-frame-pointer"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
fi


if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi

mkdir -p $PKG/usr/bin
cd $TMP
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd $NAME/libavcodec
mkdir amrwb_float
mkdir amr_float
mkdir amr
cd amrwb_float
unzip -o $CWD/26204-510.zip
unzip -o 26204-510_ANSI-C_source_code.zip
mv makefile.gcc makefile
cd ../amr_float
unzip -o $CWD/26104-510.zip
unzip -o 26104-510_ANSI_C_source_code.zip
mv makefile.gcc makefile
cd ../amr
unzip -o $CWD/26073-510.zip
unzip -o 26073-510_ANSI-C_source_code.zip
cd $TMP/$NAME
sed -i "s|-pedantic-errors|-DMMS_IO|g" libavcodec/amrwb_float/makefile
sed -i "s|-pedantic-errors|-DMMS_IO|g" libavcodec/amr_float/makefile
sed -i "s|-pedantic-errors|-DMMS_IO|g" libavcodec/amr/makefile

find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
find . -perm 666 -exec chmod 644 {} \;
find . -perm 664 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;

chown -R root:root .


CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure --prefix=/usr \
--mandir=/usr/man --enable-shared \
--disable-debug --enable-mp3lame \
--enable-xvid --enable-a52 \
--enable-libogg --enable-gpl \
--enable-dc1394 --enable-pp \
--enable-faac --enable-faad \
--enable-dts --enable-libgsm \
--enable-a52bin --enable-vorbis \
--enable-faadbin --enable-amr_nb-fixed \
--enable-amr_if2 --enable-amr_wb \
--enable-pthreads --enable-x264 \
--enable-swscaler --enable-x11grab
make

Inviato: lun 1 gen 2007, 15:34
da danix
gohanz ha scritto:Modifica lo SlackBuild di Slacky in questo modo e mandalo in esecuzione
Quale slackBuild?? Io ho installato i pacchetti gia in formato tgz, non ho usato SlackBuild, e in questo archivio zip che mi hai detto c'è solo un file di word e una directory compressa con del codice C dentro...

Scusami ma non riesco a seguirti...puoi essere ancora più chiaro??
grazie mille...

Inviato: lun 1 gen 2007, 15:38
da gohanz
Ti devi ricreare il pacchetto. Quindi prendi lo SlackBuild di Slacky

http://www.slacky.it/repository/travers ... 2F20061209


modificalo facendo un copia ed incolla di quello che ho scritto prima. E mandalo in esecuzione, i file li ritrova da solo. Alla fine ti ritrovi il pacchetto funzionante.

Inviato: lun 1 gen 2007, 15:54
da danix
gohanz ha scritto:Ti devi ricreare il pacchetto. Quindi prendi lo SlackBuild di Slacky

http://www.slacky.it/repository/travers ... 2F20061209


modificalo facendo un copia ed incolla di quello che ho scritto prima. E mandalo in esecuzione, i file li ritrova da solo. Alla fine ti ritrovi il pacchetto funzionante.
Adesso sto iniziando a rivedere la luce, ho solo un altro dubbio, ma devo incollare quello che mi hai postato sostituendo qualcosa o semplicemente incollando nel file??

Ho provato a sostituire, te ne posto una copia prima così mi dici se va bene... ok??

Codice: Seleziona tutto

#!/bin/sh
# Heavily based on the Slackware 11.0 SlackBuild
# Requirements: lame, xvid, imlib2, a52, libdc1394, libraw1394, faad2, faac, id3lib, libgsm, libdts, mpeg4ip, x264, lzo, djbfft
# http://ffmpeg.sourceforge.net/index.php
# http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/

CWD=`pwd`
TMP=${TMP:-/tmp/tgz}
PKG=$TMP/package
NAME=ffmpeg
VERSION=`date +%Y%m%d`
ARCH=${ARCH:-i686}
BUILD=1sl
SOURCE=http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip

if [ ! -e 26204-510.zip ]; then
wget -c $SOURCE
fi

SOURCE=http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip

if [ ! -e 26104-510.zip ]; then
wget -c $SOURCE
fi

SOURCE=http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip

if [ ! -e 26073-510.zip ]; then
wget -c $SOURCE
fi



if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O3 -march=i686 -pipe -fomit-frame-pointer"
elif [ "$ARCH" = "athlon64" ]; then
SLKCFLAGS="-O2 -march=athlon64 -pipe"
elif [ "$ARCH" = "athlonxp" ]; then
SLKCFLAGS="-O3 -march=athlon-xp -pipe -fomit-frame-pointer"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
fi


if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi

mkdir -p $PKG/usr/bin
cd $TMP
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd $NAME/libavcodec
mkdir amrwb_float
mkdir amr_float
mkdir amr
cd amrwb_float
unzip -o $CWD/26204-510.zip
unzip -o 26204-510_ANSI-C_source_code.zip
mv makefile.gcc makefile
cd ../amr_float
unzip -o $CWD/26104-510.zip
unzip -o 26104-510_ANSI_C_source_code.zip
mv makefile.gcc makefile
cd ../amr
unzip -o $CWD/26073-510.zip
unzip -o 26073-510_ANSI-C_source_code.zip
cd $TMP/$NAME
sed -i "s|-pedantic-errors|-DMMS_IO|g" libavcodec/amrwb_float/makefile
sed -i "s|-pedantic-errors|-DMMS_IO|g" libavcodec/amr_float/makefile
sed -i "s|-pedantic-errors|-DMMS_IO|g" libavcodec/amr/makefile

find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
find . -perm 666 -exec chmod 644 {} \;
find . -perm 664 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;

chown -R root:root .


CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure --prefix=/usr \
--mandir=/usr/man --enable-shared \
--disable-debug --enable-mp3lame \
--enable-xvid --enable-a52 \
--enable-libogg --enable-gpl \
--enable-dc1394 --enable-pp \
--enable-faac --enable-faad \
--enable-dts --enable-libgsm \
--enable-a52bin --enable-vorbis \
--enable-faadbin --enable-amr_nb-fixed \
--enable-amr_if2 --enable-amr_wb \
--enable-pthreads --enable-x264 \
--enable-swscaler --enable-x11grab
make
make -C doc all
mkdir -p $PKG/usr/doc/$NAME-$VERSION
cp [A-Z]* doc/TODO doc/*.{html,txt} $PKG/usr/doc/$NAME-$VERSION
cp doc/*.1 $PKG/usr/man/man1
make install DESTDIR=$PKG
mkdir $PKG/etc
cp -a doc/ffserver.conf  $PKG/etc/ffserver.conf.new
cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs strip -g 2> /dev/null
find $PKG/usr/man -type f -exec gzip -9 {} \;
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cat $CWD/slack-desc > $PKG/usr/doc/$NAME-$VERSION/slack-desc
cat $CWD/$NAME.SlackBuild > $PKG/usr/doc/$NAME-$VERSION/$NAME.SlackBuild
cd $PKG
requiredbuilder -v -y -s $CWD $PKG
makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.tgz

if [ "$1" = "--cleanup" ]; then
 rm -rf $TMP
fi
perdonami ma come avrai capito non sono molto pratico... spero vada bene...

Inviato: lun 1 gen 2007, 16:01
da gohanz
Si va benissimo, mandalo in esecuzione e ti ritrovi il pacchetto funzionante, ricorda che devi aver installto tutte le dipendenze! Ma penso che questo tu lo abbia già fatto

Inviato: lun 1 gen 2007, 16:20
da danix
gohanz ha scritto:Si va benissimo, mandalo in esecuzione e ti ritrovi il pacchetto funzionante, ricorda che devi aver installto tutte le dipendenze! Ma penso che questo tu lo abbia già fatto
ok, è stata una compilazione lunga e ho intravisto un sacco di messaggi di "warning", me ne devo preoccupare??

le dipendenze le ho già installate, devo rimuovere prima il vecchio ffmpeg per installare questo nuovo??

Grazie mille per l'aiuto... sei stato davvero gentile...

Inviato: lun 1 gen 2007, 16:32
da gohanz
per i warning non c'è problema! Per il pacchetto basta che dai upgradepkg

Inviato: lun 1 gen 2007, 16:35
da danix
Sei stato un grande... funziona tutto a meraviglia

Ti ringrazio tantissimo per l'aiuto...


:wav::wav::wav: