Videos für Android konvertieren

Hi,

ich suche nach einer Möglichkeit per Kommandozeile Videos für Android zu kompilieren. Ich habs folgende Zeile dazu gefunden:

Code:
ffmpeg -i inputfile -aspect 3:2 -s 480x320 -vcodec h264 -b 480k -r 23.976 -acodec aac -ab 96k -sameq -pass 1 outputfile

Allerdings kommt da bei mir folgendes raus:

Code:
FFmpeg version SVN-r13582, Copyright (c) 2000-2008 Fabrice Bellard, et al.
  configuration: --prefix=/usr --libdir=${prefix}/lib --shlibdir=${prefix}/lib --bindir=${prefix}/bin --incdir=${prefix}/include/ffmpeg --enable-shared --enable-libmp3lame --enable-gpl --enable-libfaad --mandir=${prefix}/share/man --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-libamr-nb --enable-libamr-wb --enable-x11grab --enable-libgsm --enable-libx264 --enable-liba52 --enable-libtheora --extra-cflags=-Wall -g -fPIC -DPIC --cc=ccache cc --enable-swscale --enable-libdc1394 --enable-nonfree --disable-mmx --disable-stripping --enable-avfilter --enable-libdirac --disable-decoder=libdirac --enable-libschroedinger --disable-encoder=libschroedinger --disable-altivec --disable-armv5te --disable-armv6 --disable-vis
  libavutil version: 49.7.0
  libavcodec version: 51.58.0
  libavformat version: 52.16.0
  libavdevice version: 52.0.0
  libavfilter version: 0.0.0
  built on May  3 2009 12:07:18, gcc: 4.3.2
Input #0, avi, from 'inputfile':
  Duration: 01:28:27.14, start: 0.000000, bitrate: 1106 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 684x286 [PAR 1:1 DAR 342:143], 23.98 tb(r)
    Stream #0.1: Audio: ac3, 48000 Hz, stereo, 192 kb/s
Unknown encoder 'h264'

Dann dachte ich mir okay, vllt muss ich ffmpeg neu kompilieren, weil ich folgende Seite gefunden habe: klick Dort steht

Code:
./configure --enable-gpl --enable-postproc \
--enable-libvorbis --enable-liba52 --enable-libdc1394 \
--enable-libgsm --disable-debug --enable-libmp3lame \
--enable-libfaad --enable-libfaac --enable-libxvid \
--enable-pthreads --enable-libx264

Aber dazu sagt mir nur "Unknown option "--enable-liba52"." und so gehts dann weiter wenn ich anfange Optionen zu entfernen. Irgendwann passt dann alles soweit aber dann sagt er "ERROR: libx264 version must be >= 0.83." und ab da ist Schluss unter Debian Lenny, da

Code:
mathias@ironman:~$ apt-cache search libx264
libx264-54 - x264 video coding library
libx264-60 - x264 video coding library
libx264-65 - x264 video coding library
libx264-dev - development files for libx264
mathias@ironman:~$

Ich hab main contrib und non-free eingeschalten und debian-multimedia. Kennt jemand ne andere Möglichkeit?

cu
serow
 
Ich nutze auch ffmpeg aus debian-multimedia. Was sagt folgender Aufruf bei dir?

Code:
~ % ffmpeg -formats | grep h264
FFmpeg version UNKNOWN, Copyright (c) 2000-2010 the FFmpeg developers
  built on Mar 10 2010 09:13:25 with gcc 4.4.3
  configuration: --enable-libdc1394 --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-libfaad --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libtheora --enable-libspeex --enable-nonfree --disable-stripping --enable-avfilter --enable-libdirac --disable-decoder=libdirac --enable-libschroedinger --disable-encoder=libschroedinger --enable-avfilter-lavf --enable-libopenjpeg --enable-version3 --disable-altivec --disable-armv5te --disable-armv6 --disable-vis
  libavutil     50.11. 0 / 50.11. 0
  libavcodec    52.58. 0 / 52.58. 0
  libavformat   52.55. 0 / 52.55. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1.17. 0 /  1.17. 0
  libswscale     0.10. 0 /  0.10. 0
  libpostproc   51. 2. 0 / 51. 2. 0
 DE h264            raw H.264 video format

Sieht so aus, als könnte das Paket erstmal nur decoden, nicht encoden...

Grad aber nochmal nachgeschaut, die -83 ist erst ab Testing enthalten.
 
Zuletzt bearbeitet:
Hi,

Code:
mathias@ironman:~$ ffmpeg -formats | grep h264
FFmpeg version SVN-r13582, Copyright (c) 2000-2008 Fabrice Bellard, et al.
  configuration: --prefix=/usr --libdir=${prefix}/lib --shlibdir=${prefix}/lib --bindir=${prefix}/bin --incdir=${prefix}/include/ffmpeg --enable-shared --enable-libmp3lame --enable-gpl --enable-libfaad --mandir=${prefix}/share/man --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-libamr-nb --enable-libamr-wb --enable-x11grab --enable-libgsm --enable-libx264 --enable-liba52 --enable-libtheora --extra-cflags=-Wall -g -fPIC -DPIC --cc=ccache cc --enable-swscale --enable-libdc1394 --enable-nonfree --disable-mmx --disable-stripping --enable-avfilter --enable-libdirac --disable-decoder=libdirac --enable-libschroedinger --disable-encoder=libschroedinger --disable-altivec --disable-armv5te --disable-armv6 --disable-vis
  libavutil version: 49.7.0
  libavcodec version: 51.58.0
  libavformat version: 52.16.0
  libavdevice version: 52.0.0
  libavfilter version: 0.0.0
  built on May  3 2009 12:07:18, gcc: 4.3.2
 DE h264            raw H.264 video format
 D V DT h264            H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
 text2movsub remove_extra noise mov2textsub mp3decomp mp3comp mjpegadump imxdump h264_mp4toannexb dump_extra
mathias@ironman:~$

cu
serow
 
So wie's aussieht fehlt dir (genauso wie mir) das E-Flag für Encoding. Mit der höheren Version der x264 Library sollte sich das kompilieren lassen. Auch wenn's hässlich ist: installier doch mal die Version aus Testing von Hand...
 
Hi,

okay ich hab mit jetzt libx264-88_0.svn20100227-0.0_amd64.deb und libx264-dev_0.svn20100227-0.0_amd64.deb gezogen und installiert. Jetzt lief das ./configure durch und das make auch, aber er mag den h264 immernoch nicht:

Code:
mathias@ironman:~/ffmpeg$ ./ffmpeg -i ../Jumper\[2008\]DvDrip.AC3-aXXo.avi -aspect 3:2 -s 480x320 -vcodec h264 -b 480k -r 23.976 -acodec aac -ab 96k -sameq -pass 1 ../outputfilename.mp4
FFmpeg version git-0dedfa0, Copyright (c) 2000-2010 the FFmpeg developers
  built on Mar 11 2010 14:25:48 with gcc 4.3.2
  configuration: --enable-gpl --enable-postproc --enable-libvorbis --enable-libdc1394 --enable-libgsm --disable-debug --enable-libmp3lame --enable-libfaad --enable-libfaac --enable-libxvid --enable-pthreads --enable-libx264 --enable-nonfree
  libavutil     50.11. 0 / 50.11. 0
  libavcodec    52.58. 0 / 52.58. 0
  libavformat   52.55. 0 / 52.55. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.10. 0 /  0.10. 0
  libpostproc   51. 2. 0 / 51. 2. 0
Input #0, avi, from '../Jumper[2008]DvDrip.AC3-aXXo.avi':
  Metadata:
    ISFT            : VirtualDubMod 1.5.10.1 (build 2366/release)
  Duration: 01:28:27.14, start: 0.000000, bitrate: 1106 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 684x286 [PAR 1:1 DAR 342:143], 23.98 tbr, 23.98 tbn, 23.98 tbc
    Stream #0.1: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
Unknown encoder 'h264'
mathias@ironman:~/ffmpeg$ ./ffmpeg -formats | grep 264
FFmpeg version git-0dedfa0, Copyright (c) 2000-2010 the FFmpeg developers
  built on Mar 11 2010 14:25:48 with gcc 4.3.2
  configuration: --enable-gpl --enable-postproc --enable-libvorbis --enable-libdc1394 --enable-libgsm --disable-debug --enable-libmp3lame --enable-libfaad --enable-libfaac --enable-libxvid --enable-pthreads --enable-libx264 --enable-nonfree
  libavutil     50.11. 0 / 50.11. 0
  libavcodec    52.58. 0 / 52.58. 0
  libavformat   52.55. 0 / 52.55. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.10. 0 /  0.10. 0
  libpostproc   51. 2. 0 / 51. 2. 0
 DE h264            raw H.264 video format
  E ipod            iPod H.264 MP4 format
mathias@ironman:~/ffmpeg$


cu
serow
 
Hi,

hmm :D klingt im ersten Moment logisch, klappt aber dennoch nicht:

Code:
mathias@ironman:~/ffmpeg$ ./ffmpeg -i ../Jumper\[2008\]DvDrip.AC3-aXXo.avi -aspect 3:2 -s 480x320 -vcodec ipod -b 480k -r 23.976 -acodec aac -ab 96k -sameq -pass 1 ../outputfilename.mp4
FFmpeg version git-0dedfa0, Copyright (c) 2000-2010 the FFmpeg developers
  built on Mar 11 2010 14:25:48 with gcc 4.3.2
  configuration: --enable-gpl --enable-postproc --enable-libvorbis --enable-libdc1394 --enable-libgsm --disable-debug --enable-libmp3lame --enable-libfaad --enable-libfaac --enable-libxvid --enable-pthreads --enable-libx264 --enable-nonfree
  libavutil     50.11. 0 / 50.11. 0
  libavcodec    52.58. 0 / 52.58. 0
  libavformat   52.55. 0 / 52.55. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.10. 0 /  0.10. 0
  libpostproc   51. 2. 0 / 51. 2. 0
Input #0, avi, from '../Jumper[2008]DvDrip.AC3-aXXo.avi':
  Metadata:
    ISFT            : VirtualDubMod 1.5.10.1 (build 2366/release)
  Duration: 01:28:27.14, start: 0.000000, bitrate: 1106 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 684x286 [PAR 1:1 DAR 342:143], 23.98 tbr, 23.98 tbn, 23.98 tbc
    Stream #0.1: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
Unknown encoder 'ipod'
mathias@ironman:~/ffmpeg$

cu
serow
 
es gibt im debian-multimedia-Repository ein interaktives Script zum h264-encoden, nennt sich h264enc.
das stellt dir jede Menge Fragen und am Ende schaut es, wie es mit den auf deinem System befindlichen Tools (ffmpeg/MPlayer/Mencoder,...) das gewünschte Video am besten decodieren und neu encoden kann.

Code:
martin@lenotux:/mediafiles$ apt-cache showpkg h264enc
Package: h264enc
Versions: 
9.1.6-0.0 (/var/lib/apt/lists/www.debian-multimedia.org_dists_squeeze_main_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/www.debian-multimedia.org_dists_squeeze_main_binary-amd64_Packages
                  MD5: b4a0eba20b22ab27d98e6daf4a4089dc

8.7.1-0.0 (/var/lib/apt/lists/www.debian-multimedia.org_dists_lenny_main_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/www.debian-multimedia.org_dists_lenny_main_binary-amd64_Packages
                  MD5: b4a0eba20b22ab27d98e6daf4a4089dc


Reverse Depends: 
Dependencies: 
9.1.6-0.0 - mplayer (0 (null)) mencoder (0 (null)) lsdvd (0 (null)) lame (0 (null)) faac (0 (null)) vorbis-tools (0 (null)) ogmtools (0 (null)) gpac (0 (null)) mkvtoolnix (0 (null)) pv (0 (null)) aacplusenc (0 (null)) 
8.7.1-0.0 - mplayer (0 (null)) mencoder (0 (null)) lsdvd (0 (null)) lame (0 (null)) faac (0 (null)) vorbis-tools (0 (null)) ogmtools (0 (null)) gpac (0 (null)) mkvtoolnix (0 (null)) pv (0 (null)) aacplusenc (0 (null)) 
Provides: 
9.1.6-0.0 - 
8.7.1-0.0 - 
Reverse Provides:
 
Hi,

also ich habs jetzt nochmal nach der Anleitung hier probiert: klick Das hat auch gut funktioniert, allerings ist das Video das mir folgende Zeile erzeugt nicht abspielbar auf meinem G1:

Code:
ffmpeg -y -i input.avi -pass 1 -vcodec libx264 -vpre fastfirstpass -vpre ipod640 -b 512k -bt 512k -s 640x480 -threads 0 -f ipod -an /dev/null && ffmpeg -i input.avi -pass 2 -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre normal -vpre ipod640 -b 512k -bt 512k -s 640x480 -threads 0 -f ipod output.mp4

Weiss jemand warum? Gut G1 ist kein iPod ^^ Aber wie macht man es dann richtig?

cu
serow
 
Laut FAQ verträgt Android auch MPEG4 aka XviD. Vielleicht solltest du es damit mal probieren?

Versuchs erstmal mit 1-Pass Video. Geht schneller und um Qualität kannst du dich später auch noch kümmern.
 
Zurück
Oben