Quantcast
Channel: FFmpeg | ニコラボ
Viewing all articles
Browse latest Browse all 310

映像を上下左右にスクロールする scroll

$
0
0

ffmpeg 4.3 から使える予定のフィルタ。今までは stack フィルタで映像を並べて overlay フィルタで映像を動かしていたのが、scroll フィルタだけでスクロールできるようになった。出力フォーマットは GBRP なので適宜 format フィルタで出力形式に合わせて変換する。

基本コマンド

下から上に1フレーム毎に5%づつスクロールする。ffplay で再生確認するときは loop フィルタの size でループするフレーム数を指定する。

ループ回数を指定できる loop, aloop

ffmpeg -i input -vf scroll=vertical=0.05,format=yuv420p -c:a copy output
ffplay -i input -vf loop=loop=-1:size=32767,scroll=vertical=0.05,format=yuv420p

右から左の場合。
ffmpeg -i input -vf scroll=horizontal=0.05,format=yuv420p -c:a copy output
ffplay -i input -vf loop=loop=-1:size=32767,scroll=horizontal=0.05,format=yuv420p

画像をループする場合。
ffmpeg -loop 1 -i img -vf scroll=horizontal=0.05,format=yuv420p output
ffplay -i img -vf loop=loop=-1:size=1,scroll=horizontal=0.05,format=yuv420p

horizontalvertical を併用すると斜めにスクロールする。
ffmpeg -loop 1 -i img -vf scroll=horizontal=0.05:vertical=0.03,format=yuv420p output
ffplay -i img -vf loop=loop=-1:size=1,scroll=horizontal=0.05:vertical=0.03,format=yuv420p

loop フィルタの size を指定すると映像をループしながらスクロールも併用できる。25fpsのサンプル動画に10秒ループ(25×10=250)で1スクロールする。
ffmpeg -f lavfi -i testsrc2 -vf loop=loop=-1:size=250,setpts=N/(FRAME_RATE*TB),scroll=horizontal=1/250,format=yuv420p -t 10 output
ffplay -f lavfi -i testsrc2 -vf loop=loop=-1:size=250,scroll=horizontal=1/250,format=yuv420p

公式ドキュメント:FFmpeg Filters Documentation : scroll

オプション

既定値のままだとスクロールしない。

  • horizontal, h[float]
    左右のスクロール速度の指定。プラスで右から左、マイナスで左から右になり。絶対値が大きいほど高速になる。指定値は1フレーム当たり移動する横解像度の割合
    既定値:0
    範囲:-1 から 1 まで
  • vertical, v[float]
    上下のスクロール速度の指定。プラスで下から上、マイナスで上から下になり。絶対値が大きいほど高速になる。指定値は1フレーム当たり移動する縦解像度の割合
    既定値:0
    範囲:-1 から 1 まで
  • hpos[float]
    スクロール開始する横座標の相対位置
    既定値:0
    範囲:0 から 1 まで
  • vpos[float]
    スクロール開始する縦座標の相対位置
    既定値:0
    範囲:0 から 1 まで

Viewing all articles
Browse latest Browse all 310

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>