it-swarm.com.de

Konvertieren Sie ein Video mit ffmpeg in MP4 (H.264/AAC)

Wenn ich keinen Fehler mache, benötigt Safari derzeit MP4-Video (H.264/AAC), das für das HTML5-Element <video> codiert ist.

Also habe ich versucht, ein Video mit ffmpeg in dieses Format zu konvertieren. Wenn ich jedoch den Shell-Befehl ffmpeg -i video.flv video.mp4 eingebe, lautet der zurückgegebene Fehler:

Scheint Stream-0-Codec-Bildrate unterscheidet sich von Container-Frame-Rate: 2000.00 (2000/1) -> 29.92 (359/12) Geben Sie # 0, flv von 'video.flv' ein:
Dauer: 00: 05: 01.20, Beginn: 0,000000, Bitrate: 66 kb/s Strom # 0,0: Video: h264, yuv420p, 320x240 [PAR 1: 1 DAR 4: 3], 66 kb/s, 29,92 tbr, 1 ktbb, 2k tbc Stream # 0.1: Audio: aac, 22050 Hz, stereo, s16 Ausgang # 0, mp4, an 'video.mp4': Strom # 0,0: Video: mpeg4, yuv420p, 320x240 [PAR 1: 1 DAR 4: 3], q = 2-31, 200 kb/s, 90 ktbn, 29,92 tbc. Stream # 0.1: Audio: 0x0000, 22050 Hz, Stereo, s16, 64-kb/s-Stream Zuordnung: Stream # 0.0 -> # 0.0
Stream # 0.1 -> # 0.1 Nicht unterstützter Codec für Ausgabestrom # 0.1

Ein AAC-Codec ist erforderlich, aber ich bin mit Ubuntu ziemlich neu, und ich weiß nicht, wie ich dieses Problem beheben kann. Ich verwende Ubuntu 9.10 Karmik Koala (für AMD64).

Vielen Dank. :)

16
user176455

http://handbrake.fr ist ein Nizza High-Level-Tool mit vielen nützlichen Voreinstellungen für mp4 für iPod, PS3, ... mit sowohl GUI- als auch CLI-Schnittstellen für Linux, Windows und Mac OS X.

Es gibt seine eigenen Abhängigkeiten als eine einzige statisch verknüpfte, fette Binärdatei, sodass Sie alle x264/aac-Codecs enthalten.

  $ HandBrakeCLI -Z Universal -i myinputfile.mov -o myoutputfile.mp4

So listen Sie alle verfügbaren Voreinstellungen auf:

  $ HandBrakeCLI -z
15
ogrisel

Softwarepatente führten Debian/Ubuntu dazu, die H.264- und AAC-Encoder in ffmpeg zu deaktivieren. Siehe /usr/share/doc/ffmpeg/README.Debian.gz.

Installieren Sie also x264, mplayer/mencoder und den AAC-Encoder von Nero. (Oder wenn Sie die gesamte freie Software verwenden möchten und die Audioqualität nicht so wichtig ist, dann installieren Sie Sudo aptitude faac.)

Ich kann mich nicht erinnern, ob das Medibuntu-Paket von mencoder die x264-vid-Codierung enthält, da ich aus git x264- und svn-mplayer-Quellen ein eigenes erzeuge. (x264 ist sehr aktiv entwickelt, mit erheblichen Verbesserungen in Qualität und Geschwindigkeit.) http://git.videolan.org/?p=x264.git;a=summary

x264 ist ebenfalls gepackt, aber Sie sollten prüfen, ob es aktuell genug ist, um weightp mit den letzten Bugfixes und noch mehr Geschwindigkeitsverbesserungen einzubeziehen ...

Oder wenn Sie bereits bereit sind, von .flv zu konvertieren, anstatt von der qualitativ hochwertigen Quelle, aus der der flv stammt, zu wechseln, ist die aktuelle x264-Version, die Sie finden können, in Ordnung.

14
Peter Cordes

Sie versuchen, eine (eher seltene) .flv-Datei zu konvertieren, die (bereits) H.264-Video und AAC-Audio enthält.

Wenn Sie die Ausgabe Ihrer Konsole als FFmpeg formatieren, werden diese Details angezeigt.

 Input #0, flv, from 'video.flv':
   Duration: 00:05:01.20, start: 0.000000, bitrate: 66 kb/s
    Stream #0.0: Video: h264, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 66 kb/s, 29.92 tbr, 1k tbn, 2k tbc 
    Stream #0.1: Audio: aac, 22050 Hz, stereo, s16

Die Original-FLV-Datei wird mit H.264-Video und AAC-Audio in eine MP4-Datei konvertiert (genau wie die Original-FLV-Datei):

Output #0, mp4, to 'video.mp4': 
    Stream #0.0: Video: mpeg4, yuv420p, 320x240 [PAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 90k tbn, 29.92 tbc 
    Stream #0.1: Audio: 0x0000, 22050 Hz, stereo, s16, 64 kb/s

Da die Audio- und Videodaten in der FLV-Datei bereits im Format/in den Codecs enthalten sind, die Sie für die MP4-Datei benötigen, können Sie einfach alles in den neuen MP4-Container kopieren. Dieser Vorgang wird enorm schneller als alles zu decodieren und neu zu codieren:

ffmpeg -i video.flv -vcodec copy -acodec copy video.mp4

oder einfacher:

ffmpeg -i video.flv -codec copy video.mp4

Der eigentliche Fehler, den Sie erhalten, ist:

Nicht unterstützter Codec für Ausgabestrom # 0.1

Was bedeutet, dass FFmpeg keine Audiodaten (Stream # 0.1) in AAC konvertieren kann. 

Sie können überspringen den Fehler durch:

  • kopieren der Audiodaten, da sie bereits AAC-codiert sind (verwenden Sie den Kopierbefehl oben)

oder Sie können lösen den Fehler durch:

  • verwenden eines FFmpeg-Builds mit AAC-Decodierungs-/Encodierungsunterstützung. FFmpeg unterstützt derzeit 4 AAC-Bibliotheken (siehe FFmpeg und AAC Encoding Guide ).

Für weitere Informationen sollten Sie auch Konvertieren von FLV in MP4 mit FFmpeg The Ultimate Guide

4
Octavian Naicu

Sie müssen ffmpeg (von source) neu kompilieren, damit x264 unterstützt wird Wenn Sie den Anweisungen auf dieser Seite folgen, können Sie jede Art von Konvertierung durchführen, die Sie möchten.

3
user1297157

Sie können auch versuchen, die Motumedia PPA zu Ihren geeigneten Quellen hinzuzufügen und Ihre ffmpeg-Pakete zu aktualisieren.

1
axel_c

Sie müssen ffmpeg mit einem AAC-Encoder kompilieren. Sie finden eine unter AudioCoding .

0
mouviciel

Hatte dieses Problem vor kurzem beim Konvertieren von bösen WMV-Dateien in Final Cut Pro X zur Bearbeitung. Flow Player kann es, aber es hinterlässt eine Wasserlinie, also habe ich ein bisschen mit ffmpeg gespielt, bis ich etwas in Gang gebracht habe.

Installieren Sie zuerst ffmpeg - ich habe brew install ffmpeg.__ verwendet. Natürlich müssen Sie zuerst ein Brew installieren, google das Bit.

Als Nächstes habe ich ein einfaches Befehlszeilenskript mit folgendem Inhalt geschrieben: Sie können $ 1 durch eine Eingabe-/Ausgabedatei ersetzen oder einfach eine Shell-Skriptdatei erstellen ... Vi convert.sh Einfügen.

echo "Pass one" ffmpeg -y -i "$1" -c:v libx264 -preset medium -b:v 1555k -pass 1 -c:a libfaac -b:a 256k -f mp4 /dev/null && echo "Pass two" ffmpeg -i "$1" -c:v libx264 -preset medium -b:v 1555k -pass 2 -c:a libfaac -b:a 256k "$1.mp4"

Dann konvertieren Sie Ihr Video ... Sh convert.sh myvideofile.wmv Wenn alles gut lief, sollten Sie eine neue Datei namens myvideofile.wmv.mp4 sehen.

Hoffe das funktioniert für dich.

0
user1808087

Versuchen Sie Folgendes: Libav in Linux 

Installation: run command  
               Sudo apt-get install libav-tools 

Video conversion command::Go to folder contains the video and run in terminal
               avconv -i oldvideo.flv -ar 22050 convertedvideo.mp4
0
Vishal