2019年2月のニコ生統計

集計期間は週間のニコ生統計の1ヶ月分である。2018年からカテゴリタグの割合は今までと変わらないが、1枠30分の割合が少なくなったので来場者数とコメント数の6000以上を除かないすべての放送を対象にした。それに伴い平均値は除外した。来場者数はTS視聴可能時間が来れば増え、TS来場者数を含まずに計算することは困難な仕様なので、翌日(当日)の朝に前日の6時から当日の6時までを取得している。

全放送を対象にしたので改めて以前の放送のデータを使って調べ直している。

2018年9月25日から2018年10月1日までの間、ログイン不要で生放送が見られるようになっているのでいつも以上に来場者数が多くなっている。

【10/1更新】【ニコニコ生放送】来場者数集計方法変更のお知らせ|ニコニコインフォ

Continue reading “2019年2月のニコ生統計”

リサイズする scale

標準で使えるscaleフィルタの使い方。外部ライブラリにzscaleフィルタがありこちらはHDR、高品質リサイズ向けで処理速度はscaleフィルタより速くない2022年3月4日のコミットで同程度に速くなった。

Continue reading “リサイズする scale”

映像の上に映像をのせる overlay

映像を重ねてワイプを作ったり、重ねた映像を動かしたりできるoverlayフィルタの使い方。1入力目の映像が背景になり、2入力目の映像が最初に入力された映像の上に表示される。2入力目に透過情報があればその部分に背景にとなる1入力目の映像が映る。

透過部分に関係なく複数の映像を任意の割合で混ぜるならmixフィルタを使う。
複数の映像を任意の割合でミックスする mix

Continue reading “映像の上に映像をのせる overlay”

RGB の色味を手軽に調整できる vibrance

RGB それぞれの色を強く、弱く、反転できるvibranceフィルタの使い方。他にも似たフィルタがあるが、輝度係数の指定があるのが特徴。

基本コマンド

intensity を上げて RGB を同じようにコントラストを上げる
ffmpeg -i input -vf vibrance=intensity=0.5:rbal=1:gbal=1:bbal=1 output
ffplay -i input -vf vibrance=0.5:1:1:1

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

Continue reading “RGB の色味を手軽に調整できる vibrance”

異なる fps を連結して VFR の動画にする

今まで ffmpeg は異なるフレームレートの動画を1つに出力するのはできないと思っていたが、あらかじめ異なるフレームレートにエンコードしておいて、その後に連結すれば VFR の動画になる。

方法は以前書いた demuxer の concat を使えば楽に VFR の動画になる。注意点は映像音声ともに同じコーデックで同じエンコード設定、音声は同じサンプリング数であること。ただし動画によっては「Non-monotonous DTS in output stream 0:0」のエラーが出るが再生して問題なかったら気にしない。エラーが気になるときは入力オプションに-fflags +igndtsをつけてremuxする。

ffmpeg -fflags +igndts -i input.ts -c:v copy tmp.mp4
ffmpeg -i tmp.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts fix.ts

Trim with concat gives issues on the trim point : ffmpeg

または-bsf:a aac_adtstoascをつけてremuxする。
ffmpeg -i input.ts -c:v copy -bsf:a aac_adtstoasc output.mp4

m3u8 – how to fix Non-monotonous DTS in output stream 0:1; when using ffmpeg – Stack Overflow

ffmpeg -f concat -safe 0 -i 24-30.txt -c copy vfr.mp4

24-30.txt

file 24p.mp4
file 30p.mp4
file 24p.mp4

Continue reading “異なる fps を連結して VFR の動画にする”

ffmpeg でダウンロード速度を制限する

よく使われるのがリアルタイムの-reであるが、それだと1倍速にしかならないので音声の PTS を加工して速度を調整する。

本来のダウンロード速度は制限前より高速であることが前提である。倍速の逆数にasetptsフィルタで変更しarealtimeフィルタでリアルタイム処理にする。

1.1倍速の例
ffmpeg -i "https://example.com/hls/playlist.m3u8" -c copy output.ts -af asetpts=10*PTS/11,arealtime -vn -f null -

1.5倍速の例
ffmpeg -i "https://example.com/hls/playlist.m3u8" -c copy output.ts -af asetpts=2*PTS/3,arealtime -vn -f null -

2倍速の例
ffmpeg -i "https://example.com/hls/playlist.m3u8" -c copy output.ts -af asetpts=PTS/2,arealtime -vn -f null -

2021年7月17日以降のバージョンでは-readrateが追加され、任意の倍率に制限できるようになった。-readrate 1-reと同じ効果。

2倍速の例
ffmpeg -readrate 2 -i "https://example.com/hls/playlist.m3u8" -c copy output.ts

ffmpeg: add option readrate · FFmpeg/FFmpeg@c320b78

映像を任意の角度に回転させる rotate

任意の角度に回転でき、時間経過で回転させたり止めたりできるrotateフィルタの使い方。似たフィルタにtranspose、hflip、vflipフィルタがある。

上下左右を入れ換える vflip, hflip
ピクセル数はそのままに映像を回転させる transpose

Continue reading “映像を任意の角度に回転させる rotate”

上下左右を入れ換える vflip, hflip

解像度はそのままに上下左右を入れ換えるvflip, hflipフィルタの使い方。似たフィルタにrotate, transposeフィルタがある。

映像を任意の角度に回転させる rotate
ピクセル数はそのままに映像を回転させる transpose

Continue reading “上下左右を入れ換える vflip, hflip”

ピクセル数はそのままに映像を回転させる transpose

ピクセル数はそのままなので、1280X720 だと、90度回転すると 720X1280 になる。似たフィルタにrotate, hflip, vflipフィルタがある。

映像を任意の角度に回転させる rotate
上下左右を入れ換える vflip, hflip

Continue reading “ピクセル数はそのままに映像を回転させる transpose”

指定フレーム毎に順番を入れ換える shuffleframes

映像のフレーム順を入れ換えたり、間引いたりするshuffleframesフィルタの使い方。AviSynth の SelectEveryのように使える。逆再生にする場合はreverseフィルタを使う。

reverseフィルタの使い方。
映像と音声を逆再生にエンコードする

応用例
1フレームに複数のフレームを表示する tile
Raspberry Pi 4 Model Bの64bit OSでインタレ解除してHWエンコードする

基本コマンド

引数はスペース区切りの0フレーム目から指定する。-1を指定するとフレームを間引く(ドロップさせる)。

3フレーム毎に、2フレーム目と3フレーム目を入れ換える。
ffmpeg -i input -vf "shuffleframes=0 2 1" output

4フレーム毎に4, 8, 12 …のように4番目のフレームを間引く。
ffmpeg -i input -vf "shuffleframes=0 1 2 -1" output

4フレーム毎に2, 3, 4番目のフレームを間引く。
ffmpeg -i input -vf "shuffleframes=0 -1 -1 -1" output

30000/1001fpsの映像を5フレーム毎に5番目のフレームを間引きフレームレートを5分の4にしてsetptsフィルタでPTSを修正する。
ffmpeg -f lavfi -i testsrc2=r=30000/1001:d=10 -vf "shuffleframes=0 1 2 3 -1,setpts=N/((24000*TB)/1001)" -r 24000/1001 output

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

関連記事