[Erp5-report] r43481 priscila.manhaes - in /erp5/trunk/utils/cloudooo/cloudooo/handler/ffmp...
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Feb 18 21:04:55 CET 2011
Author: priscila.manhaes
Date: Fri Feb 18 21:04:54 2011
New Revision: 43481
URL: http://svn.erp5.org?rev=43481&view=rev
Log:
This still early draft but it attempt to handler converted videos
Added:
erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/
erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/__init__.py
erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py
erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/
erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/__init__.py
erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/data/
erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/data/test.3gp (with props)
erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/testFFMPEGHandler.py
Added: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/__init__.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/__init__.py?rev=43481&view=auto
==============================================================================
(empty)
Added: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py?rev=43481&view=auto
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py (added)
+++ erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/handler.py [utf8] Fri Feb 18 21:04:54 2011
@@ -0,0 +1,66 @@
+##############################################################################
+#
+# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
+# Priscila Manhaes <psilva at iff.edu.br>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+##############################################################################
+
+
+from zope.interface import implements
+from cloudooo.interfaces.handler import IHandler
+from cloudooo.file import File
+from subprocess import Popen,PIPE
+
+
+class FFMPEGHandler(object):
+ """FFMPEGHandler is used to handler inputed video files"""
+
+ implements(IHandler)
+
+ def __init__(self, base_folder_url, data, source_format,**kw):
+ """
+ base_folder_url(string)
+ The requested url for data base folder
+ data(string)
+ The opened and readed video into a string
+ source_format(string)
+ The source format of the inputed video"""
+ self.base_folder_url = base_folder_url
+ self.input = File(base_folder_url, data, source_format)
+ self.ffmpeg_bin = "/usr/bin/ffmpeg"
+
+ def convert(self, destination_format, **kw):
+ """ Convert the inputed video to output as format that were informed """
+ # XXX This implementation could use ffmpeg -i pipe:0, but
+ # XXX seems super unreliable currently and it generates currupted files in the end
+ output = File(self.base_folder_url, '', destination_format)
+ try:
+ command = [self.ffmpeg_bin, "-i",self.input.getUrl(), "-y", output.getUrl()]
+ stdout, stderr = Popen(command, stdout=PIPE,
+ stderr=PIPE, close_fds=True).communicate()
+ output.reload()
+ return output.getContent()
+ finally:
+ self.input.trash()
+ output.trash()
Added: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/__init__.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/__init__.py?rev=43481&view=auto
==============================================================================
(empty)
Added: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/data/test.3gp
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/data/test.3gp?rev=43481&view=auto
==============================================================================
Binary file - no diff available.
Propchange: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/data/test.3gp
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/testFFMPEGHandler.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/testFFMPEGHandler.py?rev=43481&view=auto
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/testFFMPEGHandler.py (added)
+++ erp5/trunk/utils/cloudooo/cloudooo/handler/ffmpeg/tests/testFFMPEGHandler.py [utf8] Fri Feb 18 21:04:54 2011
@@ -0,0 +1,48 @@
+##############################################################################
+#
+# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
+# Priscila Manhães <psilva at iff.edu.br>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+##############################################################################
+
+import unittest
+import md5
+from cloudooo.handler.ffmpeg.handler import FFMPEGHandler
+
+
+class TestFFMPEGHandler(unittest.TestCase):
+
+ def testConvertVideo(self):
+ """Test coversion of diferents formats of video"""
+ input_data = FFMPEGHandler("tests/data", open("tests/data/test.3gp").read())
+ hash_input = input_data.digest()
+ output_data = handler.convert("ogv")
+ hash_output = output_data.digest()
+ self.assertTrue(hash_input == hash_output)
+
+
+def test_suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestFFMPEGHandler))
+ return suite
More information about the Erp5-report
mailing list