2010-12-03 10 views
0

Ich versuche, die Videolänge während des Video-Upload zu erhalten. Wir verwenden SWFUpload, um die Datei hochzuladen. Dann Büroklammer, um es auf S3 zu speichern. Unser aktueller Prozess lädt die Datei in den Speicher und analysiert sie dann. Es explodiert mit großen Filmen. Ich weiß, dass ich die Datei danach von S3 auf meine EC2-Instanz herunterladen kann.Video-Länge mit FFMPEG und Büroklammer aufnehmen

Ich frage mich, ob es eine Möglichkeit gibt, die Datei zu verarbeiten, bevor Paperclip es nimmt, damit ich die FFMPEG-Inspektion darauf ausführen kann.

Antwort

2

Sie können einen before_save ausführen, um die temporäre Datei vor dem Speichern zu verarbeiten, wenn Sie nicht direkt zu s3 hochladen. Das ist wahrscheinlich der einfachste Weg.

Ich würde fragen, ob Sie wirklich die gesamte Datei mit FFMPEG laden müssen? Alles, was Sie brauchen, sind die Metadaten der Datei. Ich habe eine App für Audio geschrieben, die ähnlich funktioniert. Sie können die Dateigröße von Paperclip erhalten, wenn Sie die Bitrate des mpeg erreichen können, können Sie die Länge der Datei leicht berechnen, indem Sie die Dateigröße durch die Bitrate teilen.

Verwenden Sie einen before_save/before_create-Callback, um die Bitrate aus der Datei abzurufen und als ein Feld in der Datenbank zu speichern. Erzeugen Sie dynamisch die Länge von diesem Wert.