Ich habe zwei Mediendateien, die ich mit ffmpeg kombinieren möchte.
- Datei 1 enthält Audio und Video und beginnt um 0 Sekunden.
- Datei 2 enthält nur Audio und der Beginn dieser Datei ist zum Zeitpunkt = 2,5 Sekunden.
Wie kann ich diese Dateien mit ffmpeg kombinieren, wobei die Audiodatei korrekt versetzt ist?
Das habe ich versucht:
ffmpeg -i video_and_audio.webm -itsoffset 2.5 -i audio_only.webm -filter_complex amix out.webm
Dies führt dazu, dass eine Audio- / Videodatei scheinbar die richtige Länge hat und das Audio aus beiden Dateien gemischt ist, das Audio jedoch nicht richtig von der Nur-Audio-Datei versetzt ist. Die Nur-Audio-Datei scheint Zeit = 0 zu beginnen, als gäbe es kein itsoffset-Argument. Ich habe auch andere Werte nach seinem Versatz ausprobiert und dachte, dass die Einheiten nicht wirklich Sekunden sind. Selbst mit einem Wert von 2500 scheint die reine Audiodatei immer noch sofort zu starten.
Die ffmpeg-Ausgabe scheint häufig angefordert zu werden:
ffmpeg version 2.8.2 Copyright (c) 2000-2015 the FFmpeg developers built with gcc 4.8 (SUSE Linux) configuration: --shlibdir=/usr/lib64 --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib64 --enable-shared --disable-static --enable-debug --disable-stripping --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --enable-pic --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --enable-gpl --enable-x11grab --enable-version3 --enable-pthreads --datadir=/usr/share/ffmpeg --enable-avfilter --enable-libpulse --enable-libwebp --enable-libvpx --enable-libopus --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libxvid --enable-libx264 --enable-libx265 --enable-libschroedinger --enable-libgsm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-postproc --enable-libdc1394 --enable-librtmp --enable-libfreetype --enable-avresample --enable-libtwolame --enable-libvo-aacenc --enable-gnutls --enable-libass --disable-decoder=dca --enable-libdcadec --enable-frei0r --enable-libcelt --enable-libcdio --enable-ladspa libavutil 54. 31.100 / 54. 31.100 libavcodec 56. 60.100 / 56. 60.100 libavformat 56. 40.101 / 56. 40.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 40.101 / 5. 40.101 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.101 / 1. 2.101 libpostproc 53. 3.100 / 53. 3.100 Input #0, matroska,webm, from 'video_and_audio.webm': Metadata: encoder : GStreamer matroskamux version 1.5.91 creation_time : 2015-11-23 02:57:26 Duration: 00:01:20.78, start: 0.000000, bitrate: 323 kb/s Stream #0:0(eng): Video: vp8, yuv420p, 480x640, SAR 1:1 DAR 3:4, 1k tbr, 1k tbn, 1k tbc (default) Metadata: title : Video Stream #0:1(eng): Audio: vorbis, 48000 Hz, stereo, fltp (default) Metadata: title : Audio Input #1, matroska,webm, from 'audio_only.webm': Metadata: encoder : GStreamer matroskamux version 1.5.91 creation_time : 2015-11-23 02:58:46 Duration: 00:01:17.11, start: 0.000000, bitrate: 79 kb/s Stream #1:0(eng): Audio: vorbis, 48000 Hz, stereo, fltp (default) Metadata: title : Audio [libopus @ 0x16c3320] No bit rate set. Defaulting to 96000 bps. [libvpx-vp9 @ 0x16bd800] v1.3.0 Output #0, webm, to 'out.webm': Metadata: encoder : Lavf56.40.101 Stream #0:0: Audio: opus (libopus), 48000 Hz, stereo, flt, 96 kb/s (default) Metadata: encoder : Lavc56.60.100 libopus Stream #0:1(eng): Video: vp9 (libvpx-vp9), yuv420p, 480x640 [SAR 1:1 DAR 3:4], q=-1--1, 200 kb/s, 1k fps, 1k tbn, 1k tbc (default) Metadata: title : Video encoder : Lavc56.60.100 libvpx-vp9 Stream mapping: Stream #0:1 (vorbis) -> amix:input0 (graph 0) Stream #1:0 (vorbis) -> amix:input1 (graph 0) amix (graph 0) -> Stream #0:0 (libopus) Stream #0:0 -> #0:1 (vp8 (native) -> vp9 (libvpx-vp9)) Press [q] to stop, [?] for help Input stream #0:0 frame changed from size:480x640 fmt:yuv420p to size:360x480 fmt:yuv420p [libopus @ 0x16c3320] Queue input is backward in time30.41 bitrate= 265.3kbits/s Input stream #0:0 frame changed from size:360x480 fmt:yuv420p to size:240x320 fmt:yuv420p [libopus @ 0x16c3320] Queue input is backward in time00.28 bitrate= 254.3kbits/s frame= 1077 fps=4.9 q=0.0 Lsize= 2433kB time=00:01:20.79 bitrate= 246.7kbits/s video:1660kB audio:738kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.456821%