ffmpeg hängt beim Erstellen eines Videos

4441
FearUs

Ich versuche einen Audiokanal mit einem Video einzufügen:

  1. Zunächst extrahiere ich das Audio aus dem Originalvideo zur Verarbeitung:

    ffmpeg -i lotr.mp4 lotr.wav

  2. Ich extrahiere dann alle Frames für die spätere Verarbeitung:

    ffmpeg -i lotr.mp4 -f image2 %d.jpg

  3. Wenn ich mit der Verarbeitung von Audio- und Videoströmen fertig bin, versuche ich, das Video zu erstellen

    ffmpeg -f image2 -r 15 -i %d.jpg new.mp4

  4. dann mit dem Audio zusammenführen:

    ffmpeg -i new.mp4 -i lotr.wav -map 0:0 -map 1:0 new_w_audio.mp4

Ergebnis: CPU-Aktivität = 100%, der Prozess hängt und kehrt nie zurück. PS : Ich habe es sogar ausprobiert, ohne die Bilder oder das Audio zu verändern (also nur das Auspacken und dann das Packen des Videos), aber immer noch die gleiche Ausgabe

FFmpeg version SVN-r26400, Copyright (c) 2000-2011 the FFmpeg developers built on Jan 18 2011 04:07:05 with gcc 4.4.2 configuration: --enable-gpl --enable-version3 --enable-libgsm --enable-libvorb is --enable-libtheora --enable-libspeex --enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-libvpx --disable-decoder=libvpx --arch=x86 --enable-runtime-cpudetect - -enable-libxvid --enable-libx264 --enable-librtmp --extra-libs='-lrtmp -lpolarss l -lws2_32 -lwinmm' --target-os=mingw32 --enable-avisynth --enable-w32threads -- cross-prefix=i686-mingw32- --cc='ccache i686-mingw32-gcc' --enable-memalign-hack  libavutil 50.36. 0 / 50.36. 0 libavcore 0.16. 1 / 0.16. 1 libavcodec 52.108. 0 / 52.108. 0 libavformat 52.93. 0 / 52.93. 0 libavdevice 52. 2. 3 / 52. 2. 3 libavfilter 1.74. 0 / 1.74. 0 libswscale 0.12. 0 / 0.12. 0 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'new.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 creation_time : 1970-01-01 00:00:00 encoder : Lavf52.93.0 Duration: 00:00:29.66, start: 0.000000, bitrate: 193 kb/s Stream #0.0(und): Video: mpeg4, yuv420p, 200x134 [PAR 1:1 DAR 100:67], 192 k b/s, 15 fps, 15 tbr, 15 tbn, 15 tbc Metadata: creation_time : 1970-01-01 00:00:00 [wav @ 01fed010] max_analyze_duration reached Input #1, wav, from 'lotr.wav': Duration: 00:00:29.90, bitrate: 176 kb/s Stream #1.0: Audio: pcm_s16le, 11025 Hz, 1 channels, s16, 176 kb/s File 'new_w_audio.mp4' already exists. Overwrite ? [y/N] y [buffer @ 01b03820] w:200 h:134 pixfmt:yuv420p Output #0, mp4, to 'new_w_audio.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 creation_time : 1970-01-01 00:00:00 encoder : Lavf52.93.0 Stream #0.0(und): Video: mpeg4, yuv420p, 200x134 [PAR 1:1 DAR 100:67], q=2-3 1, 200 kb/s, 15 tbn, 15 tbc Metadata: creation_time : 1970-01-01 00:00:00 Stream #0.1: Audio: aac, 11025 Hz, 1 channels, s16, 64 kb/s Stream mapping: Stream #0.0 -> #0.0 Stream #1.0 -> #0.1 Press [q] to stop encoding 
1
haben aktuelle ffmpegs dieses problem immer noch? Wenn ja, reichen Sie bitte ein Trac-Ticket mit einer kleinen reproduzierbaren Probe ein. Auch welches Betriebssystem? rogerdpack vor 11 Jahren 0

2 Antworten auf die Frage

3
wedo

Aktualisieren Sie die aktuelle Version von ffmpeg.

Falls ein Mod auf die Flags hier reagiert: Dies ist * oft die einzige Lösung für FFmpeg-Probleme. Aktualisierung auf die neueste Version. Bitte lösche diese Antwort nicht. slhck vor 12 Jahren 1
@slhck Dies ist jedoch ein grundlegender Diagnoseschritt für jedes Problem, bei dem fehlerhaftes Verhalten in Software auftritt: 1. Gibt es ein Problem? Ja 2. Wurde das Update behoben? Nein 3. Wenden Sie sich an SU, um Unterstützung zu erhalten Paul vor 12 Jahren 0
@ Paul Ich verstehe deinen Punkt. Es ist definitiv das erste, was Sie versuchen würden, aber so viele Leute zögern, ihre FFmpeg-Version zu aktualisieren, es ist nicht einmal lustig. Ich bin auf der Mailingliste, das passiert immer wieder dort. Ich denke, es lohnt sich, dies einfach beizubehalten, weil ich weiß, dass es einige Probleme beheben wird. slhck vor 12 Jahren 0
@slhck Ich verstehe - ich verstehe, sie sind auf fester Release-Distribution und sind unbequem mit `make`ing und der Verwaltung einer aktuellen Version? Oder aus welchem ​​Grund auch immer, deshalb bevorzuge ich Rolling. Ooops Ich habe anscheinend eine Diskussion in den Kommentaren. Paul vor 12 Jahren 3
2
S.gfx

Könnte mehrere Dinge sein. Ein generelles Hängen bei der Videobearbeitung tritt häufig bei unkomprimierten Videocodecs auf. Nicht sicher, ob ich dort gelesen habe, dass das Originalvideo im yuv420p-Codec vorliegt. Möglicherweise hängt es beim Versuch, mit viel Speicherplatz umzugehen, oder beim direkten Komprimieren der Bilder in mp4. Eine Sache, die ich mir vorstellen kann, ist das Konvertieren zuerst in avi, dh Ausgabe in ein avi, aber erzwingen eines verlustfreien Codecs wie camtasia / camstudio (ich denke, ffmpeg unterstützt es), so dass es nicht so "schwer" ist und dann eine zweite Operation ausführt in mp4 konvertieren. Andere Sache ist ... -r15? Sie wissen sicherlich besser, welche FPS das Originalvideo enthält, aber es waren 24 FPS oder so, oder?

Außerdem ... Sie können auch den Ausgabecodec erzwingen, nicht nur das Format. MP4 funktioniert ziemlich gut mit dem .h264-Codec, der sehr viel Qualität und eine unglaubliche Größe bietet. Wenn ich mich gut erinnere, unterstützt ffmpeg es auch. (Vielleicht möchten Sie dies zuerst versuchen ...)

Bearbeiten: Remember -codecs zeigt die Liste der Codecs in der Befehlszeile an. Natürlich können Sie zum Beispiel in der Win-Konsole ffmpeg -codecs> codecs.txt zum einfacheren Lesen, Suchen usw. verwenden. Gesund auch mit -formaten usw.

1) das Video ist in der Tat 15 fps 2) ja, das Problem stellte sich heraus, dass es sich dabei um eine Kodierung in mp4 handelt. Also habe ich es in avi geändert und gearbeitet :) DANKE :) FearUs vor 13 Jahren 0
Schön, dass es funktioniert hat! :) S.gfx vor 13 Jahren 0