# HG changeset patch # User Thierry Florac # Date 1449243441 -3600 # Node ID 3ee119b3968fc678911330841d63b691fb1a75af # Parent 0f4851b0aef3b4c57956c18c8c71d55bc68c8e19 Version 0.1.2 diff -r 0f4851b0aef3 -r 3ee119b3968f buildout.cfg --- a/buildout.cfg Fri Dec 04 16:37:02 2015 +0100 +++ b/buildout.cfg Fri Dec 04 16:37:21 2015 +0100 @@ -68,4 +68,4 @@ eggs = pyams_media [test] [versions] -pyams_media = 0.1.0 +pyams_media = 0.1.2 diff -r 0f4851b0aef3 -r 3ee119b3968f docs/HISTORY.txt --- a/docs/HISTORY.txt Fri Dec 04 16:37:02 2015 +0100 +++ b/docs/HISTORY.txt Fri Dec 04 16:37:21 2015 +0100 @@ -1,6 +1,35 @@ History ======= +0.1.2 +----- + - improved errors handling + - added link in medias conversions status form to download generated videos + - added command line annotation in generated medias + - added video conversion options + +0.1.1.1 +------- + - updated medias conversion utility edit form + +0.1.1 +----- + - added download links in medias conversion dashboard + - added audio and video bitrates in videos converter + - updated libAV conversion options + +0.1.0.3 +------- + - corrected "MediasConversions.get_conversion_width" method + +0.1.0.2 +------- + - switch completely to libAV tools commands ("avconv" and "avprobe") + +0.1.0.1 +------- + - small compatibility change in "ffprobe/avprobe" command arguments + 0.1.0 ----- - First release diff -r 0f4851b0aef3 -r 3ee119b3968f docs/README.txt --- a/docs/README.txt Fri Dec 04 16:37:02 2015 +0100 +++ b/docs/README.txt Fri Dec 04 16:37:21 2015 +0100 @@ -7,7 +7,7 @@ pyams_media is a Pyramid/PyAMS extension package used to automatically convert and display medias, actually audio and video files. -Medias conversion is based on FFmpeg binary, which must be available on the web server. +Medias conversion is based on libAV tools, which must be available on the web server. Medias conversions @@ -15,7 +15,7 @@ Medias conversion implies several pre-requisites: - - the ''ffmpeg'' executable must be available in your path; + - the ''avconv'' and ''avprobe'' executables must be available in your path; - you have to rely a ZEO connection handling a blobs cache directory; @@ -34,7 +34,7 @@ pyams_media.tcp_handler = 127.0.0.1:5556 PyAMS control panel allows you to define several conversion settings, for example to define which audio and video -formats should be available, as well as a few FFmpeg conversion settings (frame size, bitrate, sampling...). +formats should be available, as well as a few libAV conversion settings (frame size, bitrate, sampling...). Conversion is launched automatically in the background as soon as a media file is added to any content. Converted medias are stored in the ZODB as blob files in the original media file annotations. diff -r 0f4851b0aef3 -r 3ee119b3968f setup.py --- a/setup.py Fri Dec 04 16:37:02 2015 +0100 +++ b/setup.py Fri Dec 04 16:37:21 2015 +0100 @@ -22,7 +22,7 @@ README = os.path.join(DOCS, 'README.txt') HISTORY = os.path.join(DOCS, 'HISTORY.txt') -version = '0.1.0' +version = '0.1.2' long_description = open(README).read() + '\n\n' + open(HISTORY).read() tests_require = [] diff -r 0f4851b0aef3 -r 3ee119b3968f src/pyams_media/locales/fr/LC_MESSAGES/pyams_media.mo Binary file src/pyams_media/locales/fr/LC_MESSAGES/pyams_media.mo has changed diff -r 0f4851b0aef3 -r 3ee119b3968f src/pyams_media/locales/fr/LC_MESSAGES/pyams_media.po --- a/src/pyams_media/locales/fr/LC_MESSAGES/pyams_media.po Fri Dec 04 16:37:02 2015 +0100 +++ b/src/pyams_media/locales/fr/LC_MESSAGES/pyams_media.po Fri Dec 04 16:37:21 2015 +0100 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2015-09-08 18:12+0200\n" +"POT-Creation-Date: 2015-12-02 17:33+0100\n" "PO-Revision-Date: 2015-08-28 13:59+0200\n" "Last-Translator: Thierry Florac \n" "Language-Team: French\n" @@ -28,63 +28,63 @@ msgid "OGG audio converter" msgstr "Conversion audio OGG" -#: src/pyams_media/converter.py:178 +#: src/pyams_media/converter.py:180 msgid "FLV (Flash Video) video converter" msgstr "Conversion vidéo FLV (Flash)" -#: src/pyams_media/converter.py:194 +#: src/pyams_media/converter.py:196 msgid "MP4 (HTML5) video converter" msgstr "Conversion vidéo MP4 (HTML5)" -#: src/pyams_media/converter.py:213 +#: src/pyams_media/converter.py:216 msgid "OGG video converter" msgstr "Conversion vidéo OGG" -#: src/pyams_media/converter.py:221 +#: src/pyams_media/converter.py:224 msgid "WebM video converter" msgstr "Conversion vidéo WebM" -#: src/pyams_media/zmi/media.py:51 +#: src/pyams_media/zmi/media.py:49 msgid "Video conversions..." msgstr "Conversions vidéos..." -#: src/pyams_media/zmi/media.py:62 +#: src/pyams_media/zmi/media.py:60 msgid "Selected video conversions" msgstr "Conversions vidéo du média" -#: src/pyams_media/zmi/media.py:114 +#: src/pyams_media/zmi/media.py:118 msgid "Audio conversions..." msgstr "Conversions audio..." -#: src/pyams_media/zmi/media.py:125 +#: src/pyams_media/zmi/media.py:129 msgid "Selected audio conversions" msgstr "Conversions audio du média" -#: src/pyams_media/zmi/__init__.py:51 +#: src/pyams_media/zmi/__init__.py:53 msgid "Update medias converter properties" msgstr "Modifier les propriétés du convertisseur de médias" -#: src/pyams_media/zmi/__init__.py:68 +#: src/pyams_media/zmi/__init__.py:70 msgid "Video conversion" msgstr "Conversion vidéo" -#: src/pyams_media/zmi/__init__.py:85 +#: src/pyams_media/zmi/__init__.py:87 msgid "Audio conversion" msgstr "Conversion audio" -#: src/pyams_media/zmi/__init__.py:105 +#: src/pyams_media/zmi/__init__.py:107 msgid "Test process connection..." msgstr "Tester la connexion..." -#: src/pyams_media/zmi/__init__.py:128 +#: src/pyams_media/zmi/__init__.py:130 msgid "Test medias converter process connection" msgstr "Tester la connexion au processus de conversion" -#: src/pyams_media/zmi/__init__.py:115 src/pyams_media/zmi/video.py:71 +#: src/pyams_media/zmi/__init__.py:117 src/pyams_media/zmi/video.py:71 msgid "Close" msgstr "Fermer" -#: src/pyams_media/zmi/__init__.py:116 +#: src/pyams_media/zmi/__init__.py:118 msgid "Test connection" msgstr "Tester la connexion" @@ -125,23 +125,23 @@ msgid "An error occurred. No created thumbnail." msgstr "Une erreur est intervenue. L'illustration n'a pas pu être générée." -#: src/pyams_media/zmi/templates/audio-conversions.pt:10 +#: src/pyams_media/zmi/templates/audio-conversions.pt:5 msgid "Status" msgstr "Statut" -#: src/pyams_media/zmi/templates/audio-conversions.pt:25 -#: src/pyams_media/zmi/templates/video-conversions.pt:39 -#: src/pyams_media/zmi/templates/video-conversions.pt:56 +#: src/pyams_media/zmi/templates/audio-conversions.pt:15 +#: src/pyams_media/zmi/templates/video-conversions.pt:26 +#: src/pyams_media/zmi/templates/video-conversions.pt:43 msgid "OK" msgstr "OK" -#: src/pyams_media/zmi/templates/audio-conversions.pt:28 -#: src/pyams_media/zmi/templates/video-conversions.pt:42 -#: src/pyams_media/zmi/templates/video-conversions.pt:59 +#: src/pyams_media/zmi/templates/audio-conversions.pt:17 +#: src/pyams_media/zmi/templates/video-conversions.pt:30 +#: src/pyams_media/zmi/templates/video-conversions.pt:47 msgid "Waiting..." msgstr "En attente..." -#: src/pyams_media/zmi/templates/video-conversions.pt:10 +#: src/pyams_media/zmi/templates/video-conversions.pt:6 msgid "Original size" msgstr "Taille d'origine" @@ -153,65 +153,75 @@ msgid "Name of ZEO connection utility defining converter connection" msgstr "Nom de la connexion ZEO utilisée par le processus de conversion" -#: src/pyams_media/interfaces/__init__.py:172 +#: src/pyams_media/interfaces/__init__.py:173 msgid "Video formats conversions" msgstr "Formats de conversion vidéo" -#: src/pyams_media/interfaces/__init__.py:173 +#: src/pyams_media/interfaces/__init__.py:174 msgid "Published video files will be automatically converted to this format" msgstr "Les vidéos publiées seront automatiquement converties dans ces formats" -#: src/pyams_media/interfaces/__init__.py:177 +#: src/pyams_media/interfaces/__init__.py:178 msgid "Video frames size" msgstr "Taille de l'image" -#: src/pyams_media/interfaces/__init__.py:178 +#: src/pyams_media/interfaces/__init__.py:179 msgid "Leave empty to keep original frame size..." msgstr "Indiquez ici les différentes résolutions qui seront générées..." -#: src/pyams_media/interfaces/__init__.py:182 +#: src/pyams_media/interfaces/__init__.py:183 +msgid "Video bitrate" +msgstr "Débit vidéo" + +#: src/pyams_media/interfaces/__init__.py:184 +msgid "In kilo-bytes per second. Leave empty to keep original value" +msgstr "" +"En kilo-octets par seconde. Laissez cette zone vide pour garder la valeur du " +"média d'origine." + +#: src/pyams_media/interfaces/__init__.py:187 +msgid "Video quantisation scale" +msgstr "Quantification vidéo" + +#: src/pyams_media/interfaces/__init__.py:188 +msgid "Lower value indicates higher quality" +msgstr "Une valeur faible indique une qualité plus élevée" + +#: src/pyams_media/interfaces/__init__.py:192 msgid "Video audio frequency" msgstr "Fréquence audio" -#: src/pyams_media/interfaces/__init__.py:183 -#: src/pyams_media/interfaces/__init__.py:201 +#: src/pyams_media/interfaces/__init__.py:193 +#: src/pyams_media/interfaces/__init__.py:207 msgid "A common value is 22050. Leave empty to keep original value." msgstr "" "Une valeur courante est 22050. Laissez cette zone vide pour garder la valeur " "du média d'origine." -#: src/pyams_media/interfaces/__init__.py:186 +#: src/pyams_media/interfaces/__init__.py:196 msgid "Video audio bitrate" -msgstr "Débit vidéo" +msgstr "Débit audio" -#: src/pyams_media/interfaces/__init__.py:187 -#: src/pyams_media/interfaces/__init__.py:205 +#: src/pyams_media/interfaces/__init__.py:197 +#: src/pyams_media/interfaces/__init__.py:211 msgid "In kilo-bytes per second. Leave empty to keep original value." msgstr "" "En kilo-octets par seconde. Laissez cette zone vide pour garder la valeur du " "média d'origine." -#: src/pyams_media/interfaces/__init__.py:190 -msgid "Video quantisation scale" -msgstr "Quantification vidéo" - -#: src/pyams_media/interfaces/__init__.py:191 -msgid "Lower value indicates higher quality" -msgstr "Une valeur faible indique une qualité plus élevée" - -#: src/pyams_media/interfaces/__init__.py:195 +#: src/pyams_media/interfaces/__init__.py:201 msgid "Audio formats conversions" msgstr "Formats de conversion audio" -#: src/pyams_media/interfaces/__init__.py:196 +#: src/pyams_media/interfaces/__init__.py:202 msgid "Published audio files will be automatically converted to this format" msgstr "" "Les fichiers audios publiés seront automatiquement convertis dans ces formats" -#: src/pyams_media/interfaces/__init__.py:200 +#: src/pyams_media/interfaces/__init__.py:206 msgid "Audio frequency" msgstr "Fréquence audio" -#: src/pyams_media/interfaces/__init__.py:204 +#: src/pyams_media/interfaces/__init__.py:210 msgid "Audio bitrate" msgstr "Débit audio" diff -r 0f4851b0aef3 -r 3ee119b3968f src/pyams_media/locales/pyams_media.pot --- a/src/pyams_media/locales/pyams_media.pot Fri Dec 04 16:37:02 2015 +0100 +++ b/src/pyams_media/locales/pyams_media.pot Fri Dec 04 16:37:21 2015 +0100 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2015-09-08 18:12+0200\n" +"POT-Creation-Date: 2015-12-02 17:33+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Lingua 3.8\n" +"Generated-By: Lingua 3.10.dev0\n" #: ./src/pyams_media/converter.py:103 msgid "WAV audio converter" @@ -28,63 +28,63 @@ msgid "OGG audio converter" msgstr "" -#: ./src/pyams_media/converter.py:178 +#: ./src/pyams_media/converter.py:180 msgid "FLV (Flash Video) video converter" msgstr "" -#: ./src/pyams_media/converter.py:194 +#: ./src/pyams_media/converter.py:196 msgid "MP4 (HTML5) video converter" msgstr "" -#: ./src/pyams_media/converter.py:213 +#: ./src/pyams_media/converter.py:216 msgid "OGG video converter" msgstr "" -#: ./src/pyams_media/converter.py:221 +#: ./src/pyams_media/converter.py:224 msgid "WebM video converter" msgstr "" -#: ./src/pyams_media/zmi/media.py:51 +#: ./src/pyams_media/zmi/media.py:49 msgid "Video conversions..." msgstr "" -#: ./src/pyams_media/zmi/media.py:62 +#: ./src/pyams_media/zmi/media.py:60 msgid "Selected video conversions" msgstr "" -#: ./src/pyams_media/zmi/media.py:114 +#: ./src/pyams_media/zmi/media.py:118 msgid "Audio conversions..." msgstr "" -#: ./src/pyams_media/zmi/media.py:125 +#: ./src/pyams_media/zmi/media.py:129 msgid "Selected audio conversions" msgstr "" -#: ./src/pyams_media/zmi/__init__.py:51 +#: ./src/pyams_media/zmi/__init__.py:53 msgid "Update medias converter properties" msgstr "" -#: ./src/pyams_media/zmi/__init__.py:68 +#: ./src/pyams_media/zmi/__init__.py:70 msgid "Video conversion" msgstr "" -#: ./src/pyams_media/zmi/__init__.py:85 +#: ./src/pyams_media/zmi/__init__.py:87 msgid "Audio conversion" msgstr "" -#: ./src/pyams_media/zmi/__init__.py:105 +#: ./src/pyams_media/zmi/__init__.py:107 msgid "Test process connection..." msgstr "" -#: ./src/pyams_media/zmi/__init__.py:128 +#: ./src/pyams_media/zmi/__init__.py:130 msgid "Test medias converter process connection" msgstr "" -#: ./src/pyams_media/zmi/__init__.py:115 ./src/pyams_media/zmi/video.py:71 +#: ./src/pyams_media/zmi/__init__.py:117 ./src/pyams_media/zmi/video.py:71 msgid "Close" msgstr "" -#: ./src/pyams_media/zmi/__init__.py:116 +#: ./src/pyams_media/zmi/__init__.py:118 msgid "Test connection" msgstr "" @@ -120,23 +120,23 @@ msgid "An error occurred. No created thumbnail." msgstr "" -#: ./src/pyams_media/zmi/templates/audio-conversions.pt:10 +#: ./src/pyams_media/zmi/templates/audio-conversions.pt:5 msgid "Status" msgstr "" -#: ./src/pyams_media/zmi/templates/audio-conversions.pt:25 -#: ./src/pyams_media/zmi/templates/video-conversions.pt:39 -#: ./src/pyams_media/zmi/templates/video-conversions.pt:56 +#: ./src/pyams_media/zmi/templates/audio-conversions.pt:15 +#: ./src/pyams_media/zmi/templates/video-conversions.pt:26 +#: ./src/pyams_media/zmi/templates/video-conversions.pt:43 msgid "OK" msgstr "" -#: ./src/pyams_media/zmi/templates/audio-conversions.pt:28 -#: ./src/pyams_media/zmi/templates/video-conversions.pt:42 -#: ./src/pyams_media/zmi/templates/video-conversions.pt:59 +#: ./src/pyams_media/zmi/templates/audio-conversions.pt:17 +#: ./src/pyams_media/zmi/templates/video-conversions.pt:30 +#: ./src/pyams_media/zmi/templates/video-conversions.pt:47 msgid "Waiting..." msgstr "" -#: ./src/pyams_media/zmi/templates/video-conversions.pt:10 +#: ./src/pyams_media/zmi/templates/video-conversions.pt:6 msgid "Original size" msgstr "" @@ -148,60 +148,68 @@ msgid "Name of ZEO connection utility defining converter connection" msgstr "" -#: ./src/pyams_media/interfaces/__init__.py:172 +#: ./src/pyams_media/interfaces/__init__.py:173 msgid "Video formats conversions" msgstr "" -#: ./src/pyams_media/interfaces/__init__.py:173 +#: ./src/pyams_media/interfaces/__init__.py:174 msgid "Published video files will be automatically converted to this format" msgstr "" -#: ./src/pyams_media/interfaces/__init__.py:177 -msgid "Video frames size" -msgstr "" - #: ./src/pyams_media/interfaces/__init__.py:178 +msgid "Video frames size" +msgstr "" + +#: ./src/pyams_media/interfaces/__init__.py:179 msgid "Leave empty to keep original frame size..." msgstr "" -#: ./src/pyams_media/interfaces/__init__.py:182 +#: ./src/pyams_media/interfaces/__init__.py:183 +msgid "Video bitrate" +msgstr "" + +#: ./src/pyams_media/interfaces/__init__.py:184 +msgid "In kilo-bytes per second. Leave empty to keep original value" +msgstr "" + +#: ./src/pyams_media/interfaces/__init__.py:187 +msgid "Video quantisation scale" +msgstr "" + +#: ./src/pyams_media/interfaces/__init__.py:188 +msgid "Lower value indicates higher quality" +msgstr "" + +#: ./src/pyams_media/interfaces/__init__.py:192 msgid "Video audio frequency" msgstr "" -#: ./src/pyams_media/interfaces/__init__.py:183 -#: ./src/pyams_media/interfaces/__init__.py:201 +#: ./src/pyams_media/interfaces/__init__.py:193 +#: ./src/pyams_media/interfaces/__init__.py:207 msgid "A common value is 22050. Leave empty to keep original value." msgstr "" -#: ./src/pyams_media/interfaces/__init__.py:186 +#: ./src/pyams_media/interfaces/__init__.py:196 msgid "Video audio bitrate" msgstr "" -#: ./src/pyams_media/interfaces/__init__.py:187 -#: ./src/pyams_media/interfaces/__init__.py:205 +#: ./src/pyams_media/interfaces/__init__.py:197 +#: ./src/pyams_media/interfaces/__init__.py:211 msgid "In kilo-bytes per second. Leave empty to keep original value." msgstr "" -#: ./src/pyams_media/interfaces/__init__.py:190 -msgid "Video quantisation scale" -msgstr "" - -#: ./src/pyams_media/interfaces/__init__.py:191 -msgid "Lower value indicates higher quality" -msgstr "" - -#: ./src/pyams_media/interfaces/__init__.py:195 +#: ./src/pyams_media/interfaces/__init__.py:201 msgid "Audio formats conversions" msgstr "" -#: ./src/pyams_media/interfaces/__init__.py:196 +#: ./src/pyams_media/interfaces/__init__.py:202 msgid "Published audio files will be automatically converted to this format" msgstr "" -#: ./src/pyams_media/interfaces/__init__.py:200 +#: ./src/pyams_media/interfaces/__init__.py:206 msgid "Audio frequency" msgstr "" -#: ./src/pyams_media/interfaces/__init__.py:204 +#: ./src/pyams_media/interfaces/__init__.py:210 msgid "Audio bitrate" msgstr ""