Ich habe einen Film, der ffmpeg und andere Progs angeblich 07:03:52 lang ist, aber die tatsächliche Spielzeit ist eigentlich eher 2:35:00
ffprobe video.mp4
ffprobe version 3.0.2 Copyright (c) 2007-2016 the FFmpeg developers
built with gcc 5.3.1 (Debian 5.3.1-17) 20160429
configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libtesseract --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mipsdsp --disable-mips32r2 --disable-msa --disable-mipsfpu --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi --enable-avresample --enable-libutvideo --enable-libfdk-aac --enable-libx265 --enable-libbs2b --enable-libilbc --enable-libopenh264 --enable-libkvazaar --enable-libsnappy --enable-libsoxr --enable-libiec61883 --enable-vaapi --enable-opencl --enable-libdc1394 --disable-altivec --shlibdir=/usr/lib/x86_64-linux-gnu
libavutil 55. 17.103 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : isom
minor_version : 1
compatible_brands: isomavc1
creation_time : 2012-12-12 07:03:52
Duration: 07:13:45.09, start: 0.000000, bitrate: 274 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x528 [SAR 1:1 DAR 80:33], 601 kb/s, 23.98 fps, 23.98 tbr, 96k tbn, 47.95 tbc (default)
Metadata:
creation_time : 2012-12-12 07:03:52
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 92 kb/s (default)
Metadata:
creation_time : 2012-12-12 07:04:15
handler_name : GPAC ISO Audio Handler
Gibt es jemanden, der mir helfen kann, die Spielzeit/Dauer mit einem Terminalbefehl auf Debian/Centos zu korrigieren
Ich habe HandBrake-cli + FFmpeg installiert
UPDATE Gedanke: Da das Video in verschiedenen Playern perfekt abgespielt wird und die Framerate stimmt, wie kommt es, dass Encoder wie HandBrake und ffmpeg nicht die richtige Dauer berechnen können?
UPDATE 2 - Lösung Ich habe duckduckgo.com gefunden und eine brauchbare Lösung auf einer naja.. Torrent-Seite gefunden
ffmpeg -i video.mp4 -t 2:09:39 -c:v copy -c:a copy -c:s copy out.mp4
Das ist aber keine Reparatur oder Gewöhnung an den Job, aber es hat funktioniert.
Beschwören Sie also, was das bewirkt
ffmpeg
- Video-Encoder-i
Quellvideo-t
Begrenzt bei Verwendung als Eingabeoption (vor -i) die Dauer des Lesens von Daten aus der Eingabedatei.-c:v
+ -c:a
Video+Audio von der Quelle kopierenJede Optimierung oder Akklimatisierung dieser Arbeitsbelastung ist immer noch willkommen
Joakin, was du in deinem Update 2 vorgeschlagen hast, ist Remuxing. Alternativ zu dem, was Sie vorgeschlagen haben, kann die manuelle Bearbeitung von Atom verwendet werden.
Manuelle Bearbeitung ist
(a) viel schneller - nur die Metadaten werden geändert
(b) kann auf beide Arten angewendet werden – zum Vergrößern und zum Verkleinern. Es ist mir persönlich gelungen, die Länge durch Remuxen zu verringern, aber es ist mir nicht gelungen, sie zu erhöhen.
Ich hatte das gleiche Problem. Ich habe das gelöst, indem ich den Ton aus dem Video entfernt habe. Aus diesem Grund scheint das Video eingefroren zu sein, wird aber aufgrund der Audiodauer weiter abgespielt.
Aus diesem Grund können Sie mit der ffmpeg-Option „-an“ das gesamte Audio aus der Videodatei entfernen. Wenn es entfernt wird, existiert keine falsche Zeit im Video. Sie können Audio aus der ursprünglichen Videodatei extrahieren, ihre Dauer an die Videodauer anpassen und dann Video- und Audiodateien zusammen codieren, sodass keine eingefrorenen Videobilder wiedergegeben werden.
z.B.
ffmpeg -i video_to_encode.MP4 -r 16 -crf 18 -vcodec libx264 -vb 10M -an video_output.avi
Gyan
07:03:52
wird als Erstellungszeit angegeben, obwohl die geschätzte Dauer07:13:45.09
. Versuchen Sie es mit einem Remux:ffmpeg -i video.mp4 -c copy out.mp4
Joakim
Gyan
ffprobe video.mp4 -show_entries stream=codec_type,start_time,duration -of compact
die Ausgabe aus und zeigen Sie sie an.Joakim
LF00
Nick