2012-01-09 Эх, сервер всё-таки положил

Материал из YourcmcWiki
Перейти к: навигация, поиск

Попробовал перезагрузить дистанционно — сдох, не взлетель :(

Ну ладно. Придётся завтра переться туда, опять смотреть, чего случилось.

Зато я теперь понял, как фильтер чейны в ffmpeg работают, и как с их помощью, например, два видео рядом показать (с одинаковыми размерами и частотой кадров):

ffmpeg -i FILE1 -vf "[in] pad=in_w*2:0:0:0 [y]; movie=FILE2 [o]; [y][o] overlay=w:0" -f yuv4mpegpipe - | ffplay -

Любопытно, что если -vf скормить напрямую в ffplay, получается сильная рассинхронизация двух роликов. Ну плюс ffmpeg’ом заодно и закодировать можно.

Ещё через yuv4mpegpipe можно и transcode с ffmpeg’ом соединить, например, именно так я сейчас обрабатываю видеоролики vid.stab’ом:

mkfifo fifo.raw
transcode -J stabilize=shakiness=10 -i FILE -y null,null
transcode -J transform=smoothing=5:crop=1:optzoom=0:zoom=0:maxangle=0:interpol=0 -i FILE -y yuv4mpeg,null -o fifo.raw 2>/dev/null &
TRANSCODE=$!
ffmpeg -f yuv4mpegpipe -i fifo.raw -i FILE -map 0:0 -map 1:1 -r 30 -vcodec libx264 -vb 4000k -acodec libfaac -ab 128k OUTFILE
kill -9 $TRANSCODE

Вместо fifo можно использовать /dev/stdout, но тогда по Ctrl-C дохнуть оно не захочет. Поворот видео при стабилизации отключаю, потому что стабилизацию улучшает оно не сильно, но зато ухудшает чёткость. Зум стабилизировать не нужно вообще, он у камеры фиксированный. Двухпроходный режим — обязателен, качество по сравнению с однопроходным deshake получается сильно лучше. И последний момент: лучше стабилизировать 60 кадров в секунду, потому что когда 30, по-видимому, на резких кочках успеваешь дёрнуться в процессе съёмки кадра и в итоге на стабилизированном видео заметно, как пространство «гнётся» — выглядит глючно…

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.