Länge von Browser-Aufnahmen ohne Kopfangabe ausmessen
WebM aus dem MediaRecorder nennt oft keine Gesamtlänge; ffprobe liest sie dann aus dem letzten Paket. Videos ohne lesbare Länge werden als Fehler markiert, weil sich ihr Tempo sonst nicht berechnen lässt. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
6e497ffc45
commit
18d5b80959
3 files changed
+32
-2
No files matched your search
@@ -26,6 +26,9 @@ before(() => {
|
||||
// Wie ein Hochkant-Handyvideo: quer gespeichert, mit Drehung im Dateikopf
|
||||
ffmpeg('-i', path.join(dir, 'quer.mp4'), '-an', '-c', 'copy', '-metadata:s:v:0', 'rotate=90',
|
||||
path.join(dir, 'hochkant.mp4'));
|
||||
// Wie eine Browser-Aufnahme: WebM ohne Gesamtlänge im Kopf
|
||||
ffmpeg('-f', 'lavfi', '-i', 'sine', '-t', '2', '-c:a', 'libopus', '-f', 'webm', '-live', '1',
|
||||
path.join(dir, 'aufnahme.webm'));
|
||||
});
|
||||
|
||||
after(() => {
|
||||
@@ -54,3 +57,10 @@ test('Datei ohne Video wird abgelehnt', { skip: !hasFfmpeg && 'ffmpeg fehlt' },
|
||||
fs.writeFileSync(file, 'kein Video');
|
||||
await assert.rejects(probe(file));
|
||||
});
|
||||
|
||||
test('Browser-Aufnahme ohne Längenangabe wird ausgemessen', { skip: !hasFfmpeg && 'ffmpeg fehlt' }, async () => {
|
||||
const media = await probe(path.join(dir, 'aufnahme.webm'));
|
||||
assert.equal(media.hasVideo, false);
|
||||
assert.equal(media.hasAudio, true);
|
||||
assert.ok(Math.abs(media.duration - 2) < 0.1, `Länge ${media.duration}`);
|
||||
});
|
||||
Reference in new issue
Block a user