2012-01-09 Эх, сервер всё-таки положил
Попробовал перезагрузить дистанционно — сдох, не взлетель :(
Ну ладно. Придётся завтра переться туда, опять смотреть, чего случилось.
Зато я теперь понял, как фильтер чейны в 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, по-видимому, на резких кочках успеваешь дёрнуться в процессе съёмки кадра и в итоге на стабилизированном видео заметно, как пространство «гнётся» — выглядит глючно…
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.