2017-05-22 22 views
0

Ich versuche einen Weg genau zu finden schneiden ein. Mp4 mit ffmpeg. Wie ich es verstehe, muss es neu codiert werden, um das Problem der Keyframes zu umgehen. Ich weiß, dass die Videoqualität mit '-crf 0' verlustfrei eingestellt werden kann, aber gibt es auch eine Möglichkeit, dies mit dem Audio zu tun? Der beste Versuch ich gestückelt haben zusammen, ist dies:Einen .mp4 mit ffmpeg genau schneiden, ohne Audiotreue zu verlieren?

ffmpeg -ss 0 -i input.mp4 -t 23 -c:v libx264 -c:a aac -b:a 320k -strict experimental -preset ultrafast -crf 0 output.mp4 

ich entweder über die Dateigröße störte nicht zu bin. Danke für jede Hilfe.

UPDATE mit ffmpeg 3.2.5

Dies erzeugt eine 13 Sekunden Video-Ausgang:

ffmpeg -ss 00:00:03 -i input.mp4 -t 10 -c:v libx264 -c:a copy -crf 0 -preset ultrafast output.mp4 

Dies erzeugt eine 10 Sekunden-Ausgang (was ich suche), aber ohne neu codiert Audio:

ffmpeg -ss 00:00:03 -i input.mp4 -t 10 -c:v libx264 -crf 0 -preset ultrafast output.mp4 

ANOTHER UPDATE

012.351.

Ich denke nicht, dass dies möglich ist, so wie Brad vorgeschlagen hat, werde ich in .mkv mit VP9-Codierung und PCM-Audio untersuchen.

Antwort

0

Wie ich verstehe, muss es neu codiert werden, um das Problem der Keyframes zu umgehen.

Das ist richtig, und AAC-Audio hat auch ein Rahmenproblem.

Wenn Sie verlustfreies Audio möchten, müssen Sie einen Codec verwenden, der verlustfreies Audio unterstützt. Ich würde FLAC empfehlen.

Ich glaube nicht, dass FLAC in einem MP4-Container arbeitet, verwenden Sie stattdessen MKV.

+0

Vielen Dank für die nützlichen Informationen, aber ich baue ein Elektron-App (p) und Chrom kann nicht spielen .mkv, oder .avi. Ich habe 'webChimera' als Video-Plugin versucht, aber das scheint keine Linux-Unterstützung zu haben, verdammt –

+0

@ThomasHarker Chromium kann absolut MKV spielen. Das ist im Wesentlichen das WebM-Format. Wenn es nicht für Sie spielt, ist Ihr Problem dann Codec-Unterstützung. Wechseln Sie zu VP9 und Opus und Sie können loslegen. Wenn Sie diese Codecs verwenden, können Sie auch striktes WebM verwenden. – Brad

+0

Ich habe nicht von VP9 gehört .. klingt wie der Weg zu gehen, danke. Ich weiß nicht viel über Codec-Unterstützung, aber ich bin mit dem, was mit Elektronen geliefert wird, eingeschränkt. Ich kann das nicht wirklich als die richtige Antwort bezeichnen ...... oder kann ich .. –

0

Alle Audioframes sind Keyframes, so dass Audio einfach kopiert werden kann, solange ffmpeg den Audiocodec im Ausgabebehälter unterstützt.

ffmpeg -ss 0 -i input.mp4 -t 23 -c:v libx264 -c:a copy -preset ultrafast -crf 0 output.mp4 

Und wenn das Video trimmen inpoint ist ein Keyframe, kann so das Video. Da der Video-Stream Start (-SS 0) auf einen Keyframe starten, können Sie

ffmpeg -ss 0 -i input.mp4 -t 23 -c:v copy -c:a copy output.mp4 
+0

Ich habe gerade zu ffmpeg 3.2.5 aktualisiert und es scheint sich etwas besser zu verhalten ... Ich werde untersuchen, aber ich bin mir sicher, dass das Audio neu codiert werden musste auch, wenn Sie nicht auf einem Video-Keyframe waren. –

+0

hmm Fremder immer noch. mit v3.2.5, wenn ich '-c: eine Kopie' einschließe, springt es zum nächsten Schlüsselbild und schneidet nicht genau. Ohne, scheint es das Video genau nach '-t' zu schneiden. Ich dachte, das Standardverhalten wäre "kopieren"? –

+0

* Ich bin mir sicher, dass das Audio auch neu codiert werden muss, wenn Sie nicht auf einem Video-Keyframe waren * - Nein, sicherlich nicht. Audio und Video sind eigenständige Essenzen. Standardverhalten ist zu verschlüsseln. – Mulvya

Verwandte Themen