Ну в конечном итоге в flv/mp4/webm все и конвертируется, на входе принимается все что угодно. В данном случае делалось что то вроде примитивного ютуба с более-менее продвинутым видеоредактором. Хотя при желании всегда можно конвертировать в еще какой нибудь формат и оставлять ссылку на скачивание например.
Конвертируется в реальном времени, сам процесс запускается по крону допустим раз в минуту, скрипт просто заносит в базу что он делает, а дальше аяксом обновляется статус операции для клиента (расписать сами операции можно довольно подробно).
Если кому-то будет интересно, но в целом там более-менее все банально. Bootstrap, jquery, MediaElement.js, видеодорожка, аудиодорожка, на них фрагменты, каждый из фрагментов настраивается. В фрагменте указывается какой файл, с какого по какое время, с какими эффектами.
Честно говоря я вас немного не понимаю. Вам приведенный мной python код кажется настолько сложным что его невозможно написать самому? Если вы усматриваете откровенный копипаст то приведите пожалуйста пример. Или имелась в виду клиентская часть?
А на счет Ctr+U сделайте мне эту комбинацию на серверном питоновом скрипте этой демки
На питоновский код если честно не смотрел, там заточено для app engine, используется база гугла и тд. В том коде что я привел используется ajax, mongodb, две простеньких функции. Конечно у меня нет проверок исключительных ситуаций ошибок и всего остального, но это ж не продакшен, это простой пример.
Ну судя по всему ждать осталось не так долго, опера перешла на webkit. Mozilla старается в реализации webrtc. Думаю что постепенно google glass и другие будут видео с камеры транслировать именно через webrtc.
Тем не менее благодарю, это уже что то, но к сожалению не получается туда перетащить новые вкладки. Получается только в самом плагине их перетаскивать.
Если честно то я мало иследовал плюсы babel относительно gettext, при том что gettext более распространен. Насколько я понимаю фрагмент:
import gettext;
gettext.translation(domain, path, ['ru'], codeset='UTF-8')
Для babel примерный аналог:
from babel.support import Translations
Translations.load(dirname=resource_filename(__name__, 'locale'), locales=['ru'], domain='messages')
Разница не очень большая.
jinja2 все равно не может знать о местонахождении locale, поэтому ей нужно указывать откуда брать переводы.
А строчки:
jinja = Environment( extensions=['jinja2.ext.i18n'])
jinja.install_gettext_translations(translations)
и
kwarg['_'] = get_trans(module)
Выполняют примерно одинаковую задачу. Но с небольшой разницей, get_trans() «знает» что такое модули, и каждому модулю предоставляет именно его файл переводов, исключая конфликты и пр.
Я думал об этом. Но просто описать настройку wsgi файлика не интересно таких материалов хватает. Интересно было бы описать вывод сообщений об ошибках, наподобие того как это делается в Werkzeug или Django, но было решено в последующих материалах на этом остановится.
Конвертируется в реальном времени, сам процесс запускается по крону допустим раз в минуту, скрипт просто заносит в базу что он делает, а дальше аяксом обновляется статус операции для клиента (расписать сами операции можно довольно подробно).
Набросал пример для bottle вначале необходимо выполнить:
также поставить mongodb
создать необходимый шаблон, и запустить питоновский код
import gettext; gettext.translation(domain, path, ['ru'], codeset='UTF-8')
Для babel примерный аналог:
from babel.support import Translations Translations.load(dirname=resource_filename(__name__, 'locale'), locales=['ru'], domain='messages')
Разница не очень большая.
А строчки:
jinja = Environment( extensions=['jinja2.ext.i18n']) jinja.install_gettext_translations(translations)
и
kwarg['_'] = get_trans(module)
Выполняют примерно одинаковую задачу. Но с небольшой разницей, get_trans() «знает» что такое модули, и каждому модулю предоставляет именно его файл переводов, исключая конфликты и пр.
Предлагаете импортировать везде функцию, которая гарантированно нужна во всем проекте?