Warren
22.10.10, 23:06
Guten Abend!
Ich habe mittels ffmpeg -i input.mp4 -acodec copy output.aac eine AAC-kodierte Audiospur aus einem MP4-Container extrahiert. Wenn ich die Datei anschließend abspiele, tritt dieses Phänomen auf, dass die Dauer nicht sofort korrekt ermittelt werden kann, sondern für einige Sekunden lang rückläufig ist.
Spiele ich die Quelldatei selbst ab, wird die Dauer richtig angezeigt. Ich weiß nicht, wie ein MP4-Container aufgebaut ist. Gibt es sowas wie Metadaten, in denen solche Informationen gespeichert sind? Muss ich ffmpeg explizit sagen, dass die Laufzeit in der zu erzeugenden Audiodatei hinterlegt werden muss?
Hier noch die Ausgabe von ffmpeg:
FFmpeg version 0.6-rpmfusion, Copyright (c) 2000-2010 the FFmpeg developers
built on Jul 27 2010 03:51:42 with gcc 4.4.4 20100630 (Red Hat 4.4.4-10)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --extra-version=rpmfusion --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avfilter-lavf --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
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
libavfilter 1.19. 0 / 1.19. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
Duration: 00:04:39.00, start: 0.000000, bitrate: 407 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 275 kb/s, 12 fps, 12 tbr, 1k tbn, 24 tbc
Stream #0.1(und): Audio: aac, 44100 Hz, stereo, s16, 127 kb/s
Output #0, adts, to 'output.aac':
Metadata:
encoder : Lavf52.64.2
Stream #0.0(und): Audio: aac, 44100 Hz, stereo, 127 kb/s
Stream mapping:
Stream #0.1 -> #0.0
Press [q] to stop encoding
size= 4440kB time=278.96 bitrate= 130.4kbits/s
video:0kB audio:4358kB global headers:0kB muxing overhead 1.884556%
Mit freundlichem Gruß
Eurer Warren
Ich habe mittels ffmpeg -i input.mp4 -acodec copy output.aac eine AAC-kodierte Audiospur aus einem MP4-Container extrahiert. Wenn ich die Datei anschließend abspiele, tritt dieses Phänomen auf, dass die Dauer nicht sofort korrekt ermittelt werden kann, sondern für einige Sekunden lang rückläufig ist.
Spiele ich die Quelldatei selbst ab, wird die Dauer richtig angezeigt. Ich weiß nicht, wie ein MP4-Container aufgebaut ist. Gibt es sowas wie Metadaten, in denen solche Informationen gespeichert sind? Muss ich ffmpeg explizit sagen, dass die Laufzeit in der zu erzeugenden Audiodatei hinterlegt werden muss?
Hier noch die Ausgabe von ffmpeg:
FFmpeg version 0.6-rpmfusion, Copyright (c) 2000-2010 the FFmpeg developers
built on Jul 27 2010 03:51:42 with gcc 4.4.4 20100630 (Red Hat 4.4.4-10)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --extra-version=rpmfusion --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avfilter-lavf --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
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
libavfilter 1.19. 0 / 1.19. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
Duration: 00:04:39.00, start: 0.000000, bitrate: 407 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 275 kb/s, 12 fps, 12 tbr, 1k tbn, 24 tbc
Stream #0.1(und): Audio: aac, 44100 Hz, stereo, s16, 127 kb/s
Output #0, adts, to 'output.aac':
Metadata:
encoder : Lavf52.64.2
Stream #0.0(und): Audio: aac, 44100 Hz, stereo, 127 kb/s
Stream mapping:
Stream #0.1 -> #0.0
Press [q] to stop encoding
size= 4440kB time=278.96 bitrate= 130.4kbits/s
video:0kB audio:4358kB global headers:0kB muxing overhead 1.884556%
Mit freundlichem Gruß
Eurer Warren