2 Stimmen

ffmpeg-Konvertierung überspringt Audio

Bei der Konvertierung eines Videos in das mp4-Format mit ffmpeg wird der Ton übersprungen, weil der Ton nicht mehr mit dem Video synchron ist.

Man kann sich das folgende Video ansehen: https://vialogues.com/vialogues/play/486

Ich verwende die folgenden Optionen für die Konvertierung

/usr/local/bin/ffmpeg -y -i $inputfile -acodec libfaac -ar 44100 -ab 96k -vcodec libx264 -level 41 -bufsize 20000k -maxrate 25000k -g 250 -r 20 -s 480x270 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +dct8x8+bpyramid -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -crf 25 -deblockalpha 0 -vpre medium -deblockbeta 0 $outputfile

Auch die ffmpeg-Version ist

ffmpeg
FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
  built on Feb 19 2011 19:03:56 with gcc 4.4.5
  configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.11. 0 /  0.11. 0
  libpostproc   51. 2. 0 / 51. 2. 0
Hyper fast Audio and Video encoder

Haben Sie eine Idee, warum dies der Fall sein könnte?

2voto

pg2286 Punkte 911

Ich habe viel recherchiert und mit der async-Option von ffmpeg gespielt. Ich habe herausgefunden, dass die Lippensynchronität aufgrund der Tatsache auftrat, dass das Audio von libfaac heruntergesampelt wurde, also habe ich die Option --acodec auf copy geändert, was effektiv bedeutet, dass es nicht heruntergesampelt wird und im Rohformat vorliegt.

Danach war das Problem verschwunden.

/usr/local/bin/ffmpeg -y -i $inputfile -acodec copy -ar 44100 -ab 96k -vcodec libx264 -level 41 -bufsize 20000k -maxrate 25000k -g 250 -r 20 -s 480x270 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +dct8x8+bpyramid -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -crf 25 -deblockalpha 0 -vpre medium -deblockbeta 0 $outputfile

Ein paar Links, die hilfreich waren, um mehr über ffmpeg herauszufinden, waren:

1) Erläutert, wie FFMPEG funktioniert: http://howto-pages.org/ffmpeg/ 2) Konvertieren von Videos in Quicktime: http://ubuntuforums.org/archive/index.php/t-387640.html 3) Installation von FFMPEG unter UBUNTU : http://ubuntuforums.org/showpost.php?p=6963607&postcount=360

0voto

Dmitry Punkte 1948

Ihre Antwort ist eine Lösung, die auch bei mir gut funktioniert hat, als ich mit einem ähnlichen Problem konfrontiert war. Allerdings war das Kopieren der Audiospur für mich keine Option, weil ich sie komprimiert haben möchte und die Originale möglicherweise 384kbps-Spuren haben.

Aber der wichtige Punkt, den Sie erwähnten, war das Problem des Downsampling. Das und dieser Thread (http://doom10.org/index.php?topic=1639.0) brachten mich zum Nachdenken und zum Ausprobieren des AAC-Codecs. Er gilt als experimentell, aber bei mir hat er gut funktioniert! -async, -vsync haben nichts gebracht, aber -acodec aac -strict experimental (damit ffmpeg nicht warnt, dass es experimentell ist) hat Wunder bewirkt! Ich empfehle diese Lösung jedem, der Probleme mit der Audio/Video-Synchronisation hat und bei dem das Kopieren des Tons keine Option ist und normale Lösungen nicht funktionieren. aac ist ein großartiger Codec. Ich werde immer noch libfaac als meinen Haupt-AAC-Codec verwenden, weil aac experimentell ist, aber ich bin mir ziemlich sicher, dass acc jetzt großartige Ergebnisse in der Produktion produzieren kann und konsistent ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X