16
Май

Земля в иллюминаторе

Написал Максим Крентовский в Деятельность

Это видео было получено на основе фотографий планеты, скачанных с сайта http://www.ntsomz.ru/electro/source_images. Фотографии были скопированы, удалены засвеченные кадры (из-за чего на видео видны выпадания, но с этими снимками был еще неприятнее).
После чего фото были скопированы по порядку, при этом каждая фотография повторялась 8 раз, дабы движение не было столь стремительными. Разумеется, не руками, а простым python-скриптом:

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python
import os

i = 0
for r, d, f in os.walk("."):
        fs = sorted(f)
        for fi in fs:
                if fi[-3:] == "jpg":
                        for j in range(1,8):
                                print "ln %s s/%06d.jpg" % (fi, i)
                                i = i + 1

(кстати, код не сам выполняет действие, а генерирует shell-команды для выполнения действий, это очень удобно для контроля над исполнением, ну и, вообще, имеет легкий привкус метапрограммирования :) )

Далее, берем волшебный ffmpeg и собираем все картинки в одно видео:

1
ffmpeg -f image2 -i %06d.jpg -an -vcodec libx264 -preset slow -tune grain -b:v 2M -threads 0 earth.mp4
03
Апр

Рецепты для ffmpeg

Написал Максим Крентовский в Деятельность

Готовясь к событию, описанному в предыдущем сообщении, я подготовил несколько вариантов для захвата и передачи изображения при помощи ffmpeg, пригодных как для организации записи, так и для трансляции в сети. Думаю, будет полезно привести их, дабы потом не вспоминать снова.
Подробнее →

В ffmpeg не самой старой версии обнаружилась неприятная проблема — в случае попытки получить из звуковой дорожки в шесть каналов (5+1) стереозвук программа отказывалась работать с ошибкой Can not resample 6 channels @ 48000 Hz to 2 channels @ 44100 Hz. Беглый поиск показал, что ошибка достаточно распространенная, но в списке рассылки была только одна рекомендация — обновить ffmpeg. Т.н.м. и самая последняя версия из репозитария благополучно отказывалась работать, плюс еще появились дополнительные ошибки (например, попробованная ревизия «разучилась» читать параметр -ab для кодека aac, в результате в структуре шло значение по умолчанию, которое вызывала ошибку, поскольку было слишком большим).

Дальнейшее расследование показало интересную вещь. Например, было найдено решение с промежуточным перекодированием звука в ac3, что неудобно и просто нерационально, хоть и позволяло решить указанную задачу. Окончательный вариант был найден в виде простого патча, найденного на странице блога muzso.hu (оттуда же и можно скачать этот патч, он называется 6to2channel-resample.patch), который якобы эту проблему решает, что я сейчас и проверяю боевым тестированием.

Примечательно, что в исправляемом файле libavcodec/resample.c присутствует функция ac3_5p1_mux, которая, по всей видимости, и дала возможность для первого ранее упомянутого трюка. Вопрос, почему 6to2channel-resample.patch еще не в мейнстриме, остается загадкой.

Комментарии отключены
30
Ноя

Потоковое видео на iPhone

Написал Максим Крентовский в Исследования

Как я уже ранее писал, вещать видео на iPhone можно было начиная с самых первых версий прошивки в псевдо-потоковом режиме, как, собственно, и делал популярный сервис YouTube. Т.е. через сеть поверх HTTP-протокола отдавался mp4-файл, а сервер умел отрабатывать параметры, передаваемые плеером и формировать заголовки формата в случае, если пользователь желал посмотреть ролик с середины.
Подробнее →

23
Сен

По мере работы над HDin.TV обнаружилась неприятная особенность — если скорость обработки одного сезона сериала из 24 серий для tulavideo.net составляла чуть более, чем половину суток, то в случае использования HD-разрешения (720p) сезон кодировался порядка половины недели (примерно 3-4 часа на серию). Это, разумеется, не могло не расстраивать, поскольку объем работы по перекодировке предстоял и еще предстоит весьма значительный.
Подробнее →

Следующая страница →
Максим Крентовский
системный архитектор
E-mail / GTalk: mkrentovskiy@gmail.com
Skype: mkrentovskiy