NAS
Electronics

Video und Audio mit ffmpeg zusammenführen

blanc

Lt. Junior Grade
Registriert
Jan. 2018
Beiträge
435
Moin,

Mit dem folgenden Befehl möchte ich eine Video Datei und eine Audio Datei zusammenführen:

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a copy -map 0:v:0 -map 1:a:0 2.3.mp4

Das Problem ist die letzten Minuten sind nicht zu hören obwohl die Audio Datei wunderbar funktioniert. Woran liegt das?

ffmpeg Info:

ffmpeg version N-49268-ge9d443c Copyright (c) 2000-2013 the FFmpeg developers
built on Jan 24 2013 23:27:01 with gcc 4.7.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 15.103 / 52. 15.103
libavcodec 54. 90.100 / 54. 90.100
libavformat 54. 61.104 / 54. 61.104
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 33.100 / 3. 33.100
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf54.61.104
Duration: 00:15:46.00, start: 0.000000, bitrate: 199 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x540, 178 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 48000 Hz, mono, s16p, 64 kb/s
Metadata:
handler_name : SoundHandler
[mp3 @ 02249080] max_analyze_duration 5000000 reached at 5016000 microseconds
Input #1, mp3, from 'audio.mp3':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41isomavc1
encoder : Lavf57.83.100
Duration: 00:15:46.03, start: 0.000000, bitrate: 49 kb/s
Stream #1:0: Audio: mp3, 48000 Hz, mono, s16p, 64 kb/s
Output #0, mp4, to '2.3.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf54.61.104
Stream #0:0(und): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 720x540, q=2-31, 178 kb/s, 25 fps, 12800 tbn, 12800 tbc
Metadata:
handler_name : VideoHandler
Stream #0:1: Audio: mp3 (i[0][0][0] / 0x0069), 48000 Hz, mono, 64 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 6965 fps=0.0 q=-1.0 size= 8356kB time=00:04:38.52 bitrate= 245.8kbits/s
frame=16492 fps=16393 q=-1.0 size= 19501kB time=00:10:59.56 bitrate= 242.2kbits/s
frame=18925 fps=12487 q=-1.0 size= 21230kB time=00:12:36.88 bitrate= 229.8kbits/s
frame=20141 fps=9948 q=-1.0 size= 21230kB time=00:13:25.52 bitrate= 215.9kbits/s
frame=21433 fps=8458 q=-1.0 size= 21230kB time=00:14:17.20 bitrate= 202.9kbits/s
frame=22506 fps=7396 q=-1.0 size= 21230kB time=00:15:00.12 bitrate= 193.2kbits/s
frame=23650 fps=6782 q=-1.0 Lsize= 26951kB time=00:15:45.88 bitrate= 233.4kbits/s

video:20573kB audio:5706kB subtitle:0 global headers:0kB muxing overhead 2.557794%
 
Keine Ahnung. Was mir aber aufgefallen ist:
ffmpeg version N-49268-ge9d443c Copyright (c) 2000-2013 the FFmpeg developers
built on Jan 24 2013 23:27:01 with gcc 4.7.2 (GCC)
Warum benutzt du eine 9 Jahre alte Version von ffmpeg? Hast du mal einfach eine aktuellere Version probiert?
 
  • Gefällt mir
Reaktionen: PHuV
Im Log sehe ich
[mp3 @ 02249080] max_analyze_duration 5000000 reached at 5016000 microseconds
Input #1, mp3, from 'audio.mp3':
Vielleicht hat es damit zu tun, es wird einfach nur das gemuxt, was ffmpeg in den 5 Sekunden analysieren konnte. Wahrscheinlich kann man die max_analyze_duration ändern?
Sonst wäre auch meine Empfehlung, mal ein neueres ffmpeg auszuprobieren.
 
Das andere hast du auch mal ausprobiert? Der Befehl könnte dann bspw. so aussehen:
Code:
ffmpeg -i video.mp4 -analyzeduration 1000M -probesize 1000M -i audio.mp3 -c:v copy -c:a copy -map 0:v:0 -map 1:a:0 2.3.mp4
(Hab die Werte in dem Beispiel jetzt mal absichtlich sehr hoch gewählt, dann sollte die Audiodatei komplett analysiert werden.)
 
Zurück
Oben