Beschnittenes Video mit ffmpeg ist kürzer als erwartet

704
Anjan0791

Ich versuche einen Clip mit einer Länge von 6 Sekunden aus einem MP4-Video (Größe: 1,44 GB, Länge: 02:23:38) zu erhalten. Der Videostream wird jedoch nach 1 Sekunde gestoppt, und der Audiostream wird bis 6 Sekunden normal abgespielt.

Ich verwende diesen Befehl, um den Ausschnitt zu machen:

ffmpeg -i myvid.mp4 -ss 00:50:40.0 -c:v copy -c:a copy -t 00:00:06.0 -async 1 clip.mp4 

Kann mir jemand bei dieser Ausgabe helfen?

Vielen Dank

Update 1: Hier ist die Ausgabe des Befehls:

ffmpeg version N-69530-g52f2adc-Sherpya Copyright (c) 2000-2015 the FFmpeg devel opers built with gcc 4.9.2 (GCC) Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'myvid.mp4': Metadata: major_brand : isom minor_version : 1 compatible_brands: isomavc1 creation_time : 2013-02-22 12:22:10 Duration: 02:23:38.07, start: 0.000000, bitrate: 1437 kb/s Chapter #0:0: start 0.000000, end 354.125000 Metadata: title : 00:00:00.000 Chapter #0:1: start 354.125000, end 2339.125000 Metadata: title : 00:05:54.125 Chapter #0:2: start 2339.125000, end 2573.125000 Metadata: title : 00:38:59.125 Chapter #0:3: start 2573.125000, end 3504.750000 Metadata: title : 00:42:53.125 Chapter #0:4: start 3504.750000, end 3854.458000 Metadata: title : 00:58:24.750 Chapter #0:5: start 3854.458000, end 4364.125000 Metadata: title : 01:04:14.458 Chapter #0:6: start 4364.125000, end 5029.125000 Metadata: title : 01:12:44.125 Chapter #0:7: start 5029.125000, end 5526.750000 Metadata: title : 01:23:49.125 Chapter #0:8: start 5526.750000, end 5796.958000 Metadata: title : 01:32:06.750 Chapter #0:9: start 5796.958000, end 6084.416000 Metadata: title : 01:36:36.958 Chapter #0:10: start 6084.416000, end 8316.416000 Metadata: title : 01:41:24.416 Chapter #0:11: start 8316.416000, end 8618.068333 Metadata: title : 02:18:36.416 Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x544 [SAR 1:1 DAR 40:17], 1242 kb/s, 24 fps, 24 tbr, 96 tbn, 48 tbc (default) Metadata: creation_time : 2013-02-22 12:22:10 handler_name : Jab We Met (2009) BRRip 1080P DTS ESub Chapters [DDR] Stream #0:1(und): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fl tp, 192 kb/s (default) Metadata: creation_time : 2013-02-22 12:22:23 handler_name : på. Output #0, mp4, to 'clip.mp4': Metadata: major_brand : isom minor_version : 1 compatible_brands: isomavc1 encoder : Lavf56.19.100 Chapter #0:0: start 0.000000, end 6.000000 Metadata: title : 00:42:53.125 Stream #0:0(und): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1280x544 [S AR 1:1 DAR 40:17], q=2-31, 1242 kb/s, 24 fps, 24 tbr, 12288 tbn, 96 tbc (default ) Metadata: creation_time : 2013-02-22 12:22:10 handler_name : Jab We Met (2009) BRRip 1080P DTS ESub Chapters [DDR] Stream #0:1(und): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, 5.1, 192 kb /s (default) Metadata: creation_time : 2013-02-22 12:22:23 handler_name : på. Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help frame= 25 fps=6.4 q=-1.0 Lsize= 226kB time=00:00:06.01 bitrate= 307.1kbits /s video:82kB audio:141kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.334416% 
0
Was passiert, wenn Sie die `-async`-Option weglassen? slhck vor 8 Jahren 0
Ereignis nach dem Entfernen von -async bleibt das Problem bestehen. Ich denke, das Problem lag bei Codecs, als ich Codecs (mpeg4, aac) und Bitraten explizit erwähnte. Es hat das Video korrekt abgeschnitten. Vielen Dank für Ihre Hilfe. Anjan0791 vor 8 Jahren 0

1 Antwort auf die Frage

0
avnr

Sie sollten den codierten Stream nicht wirklich kopieren, wenn Ihr Ziel nur ein Segment davon ist. Sie können entweder die -ss& -t-Optionen vor der Eingabedatei platzieren, aber dann wird das Schneiden auf einem Keyframe oder, wie Sie es für ein präzises Schneiden getan haben, vor der Ausgabedatei abgelegt, aber Sie müssen das Video transcodieren ist, entfernen Sie die -c:v copy -c:a copyvon Ihrem Befehl. Eine detaillierte Erklärung finden Sie in dieser Antwort .

Danke für Ihre Hilfe. Es funktionierte nach der expliziten Angabe von Codecs & Codecs-Parametern. Anjan0791 vor 8 Jahren 0
Das stimmt nicht ganz. Prinzipiell können Sie Segmente auch beim Stream-Kopieren schneiden. Sie sind möglicherweise nicht framegenau, aber ich sehe nicht, wie das vom OP gegebene Beispiel nicht funktionieren sollte. @anjan slhck vor 8 Jahren 0
@slhck - du hast recht. In der Praxis stellt sich jedoch die Frage, wie die Dinge erledigt werden können. Ich gehe also davon aus, dass es kein Interesse daran gibt, Zeit zu investieren, um zu untersuchen, warum der falsche Befehl eine falsche Ausgabe dieser Art und nicht die andere falsche Ausgabe hervorbrachte ... avnr vor 8 Jahren 0