Quantcast
Channel: ニコラボ
Viewing all 416 articles
Browse latest View live

VLC 3.0 がリリースし ARIB 字幕や AV1 デコードに対応

$
0
0

アップデート内容:vlc-3.0/NEWS at master · videolan/vlc-3.0
公式サイト:Official download of VLC media player, the best Open Source player – VideoLAN

Windows 64bit のポータブル版
https://get.videolan.org/vlc/3.0.0/win64/vlc-3.0.0-win64.7z
https://get.videolan.org/vlc/3.0.0/win64/vlc-3.0.0-win64.zip

いくつか気になったところ

  • Support output renderers, like ChromeCast
  • Support for 360 video and audio, including viewpoint modification
  • Rewrite MPEG-DASH (Dynamic Adaptive Streaming over HTTP) support, including MPEG2TS and ISOBMFF profiles
  • Support HDS (Http Dynamic Streaming) from Adobe (f4m, f4v, etc.)
  • BluRay module can open ISO over network and has full BD-J support
  • Support for DVD ISO over network
  • Support HEVC hardware decoding on Windows, using DxVA2 and D3D11
  • Support HEVC hardware decoding using OMX and MediaCodec (Android)
  • New hardware accelerated decoder for OS X and and iOS based on Video Toolbox supporting H.263, H.264/MPEG-4 AVC, H.265/HEVC, MPEG-4 Part 2, and DV
  • Support for experimental AV1 video
  • Support for ARIB STD-B24 subtitles
  • Support for experimental Daala video
  • BluRay text subtitles (HDMV) are now decoded
  • HDMI/SPDIF pass-through support for WASAPI (AC3/DTS/DTSHD/EAC3/TRUEHD)
  • Support HDR10 in Direct3D11 with Windows 10 Fall Creator Update
  • Hardware accelerated deinterlacing/adjust/sharpen/chroma with VA-API
  • Hardware accelerated adjust/invert/posterize/sepia/sharpen with CoreImage
  • Hardware accelerated deinterlacing/adjust/chroma with D3D9 and D3D11

movie, amovie 入力の設定内容

$
0
0

ffplay で複数ファイルを読み込んだり、ffprobe でフィルタを当てた後のデータを調べるときに使う movie, amovie 入力の設定内容。名前の通り映像と音声なので字幕は読み込めない。

ffplay のショートカットキー

基本コマンド

映像だけ読み込む
ffplay -f lavfi -i movie=input.mp4
音声だけ読み込む
ffplay -f lavfi -i amovie=input.mp4
映像と音声を読み込む
ffplay -f lavfi -i movie=input.mp4[out0];amovie=input.mp4[out1]
ffplay -f lavfi -i movie=input.mp4:s=0+1[out0][out1]

開始20秒から読み込む
ffplay -f lavfi -i movie=input.mp4:sp=20,setpts=PTS-STARTPTS[out0];amovie=input.mp4:sp=20,asetpts=PTS-STARTPTS[out1]
ffplay -f lavfi -i movie=input.mp4:sp=20:s=0+1[out0][out1];[out0]setpts=PTS-STARTPTS[out0];[out1]asetpts=PTS-STARTPTS[out1]

10秒の映像を10回ループする
ffplay -f lavfi -i movie=input.mp4:loop=10:discontinuity=10
さらに音声も合わせる。streamsloop をサポートしてない
ffplay -f lavfi -i movie=input.mp4:loop=10:discontinuity=10[out0];amovie=input.mp4:loop=10:discontinuity=10[out1]
video4linux2 デバイスを読み込む
ffplay -f lavfi -i movie=/dev/video0:f=video4linux2,setpts=PTS-STARTPTS
連番画像を読み込む。フレームレートは 0.75 で 3/4 の逆数の 4/3秒毎に映像が変わる。画像のファイル名は img-1.jpg 形式。エンコーダは h264_qsv
ffmpeg -f lavfi -r 0.75 -i "movie=img-(%d).jpg,format=yuv420p" -c:v h264_qsv -look_ahead 0 -q 20 -g 1 output.mp4

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

オプション

  • filename
    入力ファイル名の指定。ただしファイルだけではなく特定のデバイスやプロトコルも読み込める
  • format_name, f
    入力ファイルのフォーマット指定。無指定なら入力ファイルのコンテナや入力デバイスから類推する
  • seek_point, sp
    シーク時間の指定。秒(ss)形式で指定する
  • streams, s
    入力ファイルのどのデータを読み込むかの指定。da なら最初映像、dv なら最初の音声。0 開始の数字はトラックの順番に指定。+ を付けて映像と音声や、音声二つ以上を読み込むことも出来る
  • stream_index, si
    streams に似ているが複数入力は出来ない。トラックの順番を 0 開始の数字で指定
  • loop
    ループ回数の指定。0 なら無限。1 なら1回になる。2回目以降のタイムスタンプを変更しないので discontinuity を指定するか、別途 setpts フィルタを使う
  • discontinuity
    loop を使うと2回目以降のタイムスタンプが変更されないので、1回目の終了時間秒(ss)を指定することで問題なくループできる

2018年1月のニコ生統計

$
0
0

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

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

来場者数とコメントの統計

一番下が今月のデータ。

来場者数 コメント数 放送時間(分)
1 120,402,782 190,079,519 86,002,763
2 112,112,065 179,775,874 79,295,391
3 113,619,356 189,164,506 83,144,732
4 104,390,292 170,694,597 74,563,712
5 108,762,387 185,789,806 78,324,011
6 96,564,313 165,031,308 70,683,815
7 97,027,609 157,663,941 71,580,954
8 100,883,920 159,644,561 73,158,073
9 92,914,596 149,262,134 72,026,031
10 91,401,317 146,516,782 73,278,328
11 80,614,139 132,978,182 68,545,519
12 76,732,631 122,932,433 62,856,863
1 66,883,587 106,703,589 58,162,131

全放送の来場者数とコメント数。30分枠で 6000以上の来場者数とコメント数を除外していたのを止めて全放送の来場者数とコメント数の統計に変更。平均値は除外した。

25% 中央値 75% 最大値 25% 中央値 75% 最大値
5 11 24 334,624 2 20 54 453,032 1
5 11 23 625,153 1 19 53 442,369 2
5 11 23 327,154 1 19 53 2,741,826 3
5 11 23 336,340 2 19 54 851,239 4
5 11 23 500,703 2 20 55 4,186,730 5
5 11 23 550,804 1 19 55 357,918 6
5 11 24 875,243 1 18 55 509,523 7
5 12 26 447,278 1 18 59 473,406 8
6 14 33 568,023 0 18 71 309,076 9
7 17 41 433,071 0 20 87 494,934 10
8 20 50 441,553 0 22 106 320,536 11
10 22 56 289,182 0 25 117 441,116 12
9 22 57 330,861 0 25 119 385,567 1

カテゴリタグとそれ以外のタグの割合

カテゴリタグの割合

カテゴリタグ 2018年1月 先月比 割合 前月比 来中 コ中
ゲーム 382,824 -38,024 63.94% 1.29% 25 23
一般(その他) 145,991 -19,333 24.38% -0.23% 21 41
描いてみた 15,651 -3,150 2.61% -0.18% 22 24
歌ってみた 15,774 -3,419 2.63% -0.22% 17 23
動画紹介 28,878 -7,683 4.82% -0.62% 2 0
R18 1,208 -37 0.20% 0.02% 16 7
演奏してみた 3,450 -344 0.58% 0.01% 18 35
動物 1,428 -28 0.24% 0.02% 43 44
政治 1,267 -686 0.21% -0.08% 60 88
講座 734 -176 0.12% -0.01% 60 119
料理 1,347 -119 0.22% 0.01% 19 55.5
踊ってみた 154 -13 0.03% 0.00% 30 34
598,706 -70,583

カテゴリタグ以外のタグの上位100選

ランク タグ名 総数 割合 前月比
1 PS4ゲーム配信 97,064 16.21% 1.30%
2 雑談 80,457 13.44% -0.27%
3 顔出し 56,348 9.41% -0.33%
4 初見歓迎 48,298 8.07% -0.16%
5 スマートフォン配信 44,172 7.38% -0.23%
6 スマートフォン実況 33,451 5.59% -0.03%
7 萌え声 30,134 5.03% -0.84%
8 クルーズ待ち 27,806 4.64% -0.12%
9 凸待ち 27,028 4.51% -0.27%
10 実況 26,992 4.51% -0.08%
11 #コンパス 24,289 4.06% -0.15%
12 対戦 24,238 4.05% -0.14%
13 niconico 24,158 4.04% -0.14%
14 nhnplayart 24,061 4.02% -0.14%
15 PUBG 22,045 3.68% 0.13%
16 初見さん歓迎 19,218 3.21% 0.05%
17 過疎 17,091 2.85% -0.07%
18 Steam 16,775 2.80% 0.12%
19 PS4 13,479 2.25% 0.13%
20 まったり 12,895 2.15% -0.15%
21 艦これ 12,809 2.14% -0.57%
22 グラブル 11,671 1.95% 0.38%
23 PITACoreBox 11,548 1.93% 0.00%
24 FGO 11,020 1.84% 0.27%
25 初心者 10,585 1.77% 0.06%
26 Shadowverse 10,382 1.73% 0.19%
27 過疎放送 10,364 1.73% -0.10%
28 レトロゲーム 9,896 1.65% 0.09%
29 任天堂ゲーム配信 9,237 1.54% -0.14%
30 8,558 1.43% -0.14%
31 スプラトゥーン2 8,413 1.41% -0.06%
32 作業用BGM 7,627 1.27% 0.00%
33 アズールレーン 7,504 1.25% -0.27%
34 アニソン 7,474 1.25% 0.01%
35 地球防衛軍5 7,187 1.20% -0.18%
36 アニメ 7,062 1.18% 0.15%
37 車載 7,005 1.17% -0.01%
38 音楽 6,460 1.08% -0.03%
39 イケボ 6,299 1.05% -0.06%
40 LOL 6,115 1.02% -0.07%
41 ボカロ 6,092 1.02% -0.20%
42 東方 5,719 0.96% 0.07%
43 VOCALOID 5,513 0.92% -0.01%
44 レインボーシックス_シージ 5,491 0.92% 0.00%
45 初見プレイ 5,267 0.88% 0.02%
46 Splatoon2 5,080 0.85% -0.12%
47 デジタルTCG 4,970 0.83% 0.06%
48 ドラクエ 4,946 0.83% 0.21%
49 グランブルーファンタジー 4,917 0.82% 0.19%
50 パチスロ 4,892 0.82% -0.02%
51 Call_of_Duty__WWII 4,876 0.81% -0.24%
52 モンスト 4,676 0.78% -0.02%
53 PSO2 4,640 0.78% -0.08%
54 無人放送 4,549 0.76% -0.02%
55 弾幕歓迎 4,539 0.76% -0.03%
56 gdgd 4,438 0.74% 0.00%
57 RTA 4,343 0.73% 0.08%
58 ドラクエ10 4,323 0.72% -0.02%
59 ストリートファイターV 4,277 0.71% 0.26%
60 コメント募集 4,267 0.71% 0.04%
61 FPS 4,001 0.67% -0.06%
62 おっさん 3,989 0.67% -0.01%
63 シャドウバース 3,937 0.66% 0.05%
64 Minecraft 3,910 0.65% -0.06%
65 FF14 3,880 0.65% -0.09%
66 Cygames 3,863 0.65% 0.02%
67 ポケモン 3,832 0.64% -0.17%
68 MMD 3,648 0.61% -0.15%
69 歌枠 3,647 0.61% -0.08%
70 MHW 3,644 0.61% 0.28%
71 艦隊これくしょん 3,642 0.61% -0.12%
72 歌詞 3,601 0.60% -0.02%
73 声真似 3,583 0.60% -0.01%
74 DARK_SOULS_III 3,524 0.59% 0.14%
75 雑談配信者 3,416 0.57% -0.05%
76 メンヘラ 3,331 0.56% -0.10%
77 DQMSL 3,298 0.55% 0.23%
78 デレステ 3,283 0.55% 0.10%
79 ゲーム実況プレイ 3,214 0.54% 0.08%
80 PC 3,160 0.53% -0.01%
81 麻雀 3,141 0.52% 0.00%
82 カラオケ 3,114 0.52% -0.01%
83 モンスターハンター:ワールド_ベー… 3,060 0.51% -0.46%
84 ガンダムオンライン 3,037 0.51% 0.04%
85 ドラゴンクエストモンスターズ 3,036 0.51% 0.24%
86 アイドルマスター 2,989 0.50% -0.07%
87 外配信 2,864 0.48% -0.05%
88 ファンタシースターオンライン2 2,856 0.48% -0.02%
89 エロゲ 2,826 0.47% 0.07%
90 北海道 2,811 0.47% 0.00%
91 弾幕 2,708 0.45% 0.01%
92 アズレン 2,672 0.45% -0.01%
93 R-18 2,618 0.44% -0.02%
94 花騎士 2,562 0.43% 0.02%
95 ドラゴンクエストライバルズ 2,535 0.42% -0.06%
96 dbd 2,505 0.42% 0.04%
97 PCゲーム 2,501 0.42% 0.04%
98 お絵かき 2,498 0.42% 0.06%
99 ギター 2,498 0.42% -0.01%
100 イケメン 2,390 0.40% -0.05%

月間放送の多いコミュニティ数

100回以上から1000回以上まで。100回以上は200回以上以降を含む

100 200 300 400 500 600 700 800 900 1,000
1 6,880 1,798 549 200 89 51 43 36 33 25
2 6,103 1,465 426 161 82 56 42 36 31 28
3 6,635 1,812 567 215 103 65 48 40 31 30
4 5,682 1,456 442 172 80 49 40 33 26 24
5 5,955 1,534 463 166 78 57 45 37 31 25
6 5,036 1,213 366 128 69 50 39 34 29 25
7 4,752 1,181 367 134 76 49 37 33 26 25
8 3,993 892 250 99 58 44 35 30 26 21
9 1,625 357 129 72 51 39 28 25 21 18
10 974 216 90 59 46 37 32 30 24 22
11 465 109 54 41 38 28 23 20 17 17
12 331 78 43 31 24 21 20 19 17 16
1 234 55 30 25 24 20 17 17 12 8

総配信数とその他のデータ

co_id はユニークコミュニティID数、来場者数とコメント数がともに100未満、50未満、10, 20 未満、オープンとフォロワー限定放送の割合

総配信数 co_id 100,100 50,50 10,20 open only
1 2,662,490 91,390 87.63% 71.09% 34.72% 89.99% 10.01%
2 2,437,280 85,979 87.82% 71.47% 36.07% 90.32% 9.68%
3 2,542,659 85,086 87.91% 71.71% 36.59% 89.70% 10.30%
4 2,259,618 78,522 87.61% 71.21% 35.54% 90.01% 9.99%
5 2,342,188 80,887 87.05% 70.56% 35.09% 89.92% 10.08%
6 2,071,206 79,231 87.00% 70.80% 35.90% 89.97% 10.03%
7 2,011,626 81,910 86.44% 70.83% 36.54% 89.91% 10.09%
8 1,804,802 79,424 84.59% 69.06% 34.65% 89.93% 10.07%
9 1,193,336 73,944 79.52% 65.79% 34.03% 90.54% 9.46%
10 1,013,786 73,435 75.48% 61.21% 29.79% 87.63% 12.37%
11 794,003 65,607 71.63% 57.79% 26.94% 86.92% 13.08%
12 675,030 63,477 69.77% 55.65% 24.18% 89.54% 10.46%
1 601,135 62,753 69.41% 55.40% 25.36% 89.73% 10.27%

放送数の統計

配信時間別の割合

全放送を対象に、1枠の配信時間別の割合

30分未満 30-60 60-90 90-120 120-150 150-180 180-210 210-240 240-270 270-300 300-330 330分以上
1 17.87% 77.76% 2.61% 0.41% 0.27% 0.19% 0.15% 0.13% 0.10% 0.09% 0.07% 0.34%
2 18.33% 76.79% 2.99% 0.46% 0.29% 0.22% 0.16% 0.14% 0.11% 0.10% 0.08% 0.34%
3 18.21% 76.06% 4.01% 0.40% 0.25% 0.19% 0.15% 0.13% 0.10% 0.09% 0.07% 0.34%
4 18.37% 75.01% 4.88% 0.42% 0.26% 0.19% 0.15% 0.13% 0.10% 0.09% 0.07% 0.35%
5 18.33% 73.71% 6.23% 0.41% 0.26% 0.19% 0.15% 0.13% 0.10% 0.09% 0.07% 0.34%
6 18.27% 71.85% 8.15% 0.45% 0.27% 0.19% 0.14% 0.12% 0.10% 0.08% 0.07% 0.32%
7 17.83% 68.42% 11.93% 0.49% 0.28% 0.20% 0.15% 0.13% 0.10% 0.08% 0.07% 0.34%
8 17.37% 62.64% 15.82% 1.13% 0.78% 0.52% 0.38% 0.28% 0.21% 0.16% 0.12% 0.60%
9 18.16% 53.21% 10.20% 4.72% 3.73% 2.51% 1.89% 1.31% 0.97% 0.67% 0.51% 2.12%
10 19.01% 42.10% 12.80% 6.62% 5.42% 3.52% 2.73% 1.80% 1.37% 0.92% 0.71% 3.02%
11 17.91% 32.17% 15.68% 8.69% 7.05% 4.53% 3.59% 2.31% 1.81% 1.23% 0.96% 4.05%
12 15.83% 30.12% 16.67% 9.31% 7.70% 4.99% 3.93% 2.54% 1.97% 1.34% 1.05% 4.53%
1 15.91% 28.48% 16.42% 9.46% 7.86% 5.12% 4.19% 2.75% 2.13% 1.48% 1.17% 5.04%

配信時間別のコミュニティ率

全放送を対象に、配信時間別のコミュニティの割合。1つのコミュニティが複数の時間帯で1度でも放送すると再度カウントされるので全体の数はユニークコミュニティ数よりも多くなる。

30分未満 30-60 60-90 90-120 120-150 150-180 180-210 210-240 240-270 270-300 300-330 330分以上
1 36.78% 42.89% 6.57% 2.92% 2.16% 1.70% 1.40% 1.23% 1.00% 0.90% 0.74% 1.71%
2 36.11% 42.37% 7.17% 3.17% 2.28% 1.78% 1.41% 1.26% 1.04% 0.92% 0.77% 1.71%
3 36.49% 41.53% 8.66% 2.87% 2.05% 1.64% 1.33% 1.18% 0.98% 0.87% 0.74% 1.67%
4 35.85% 41.46% 9.62% 2.87% 2.07% 1.59% 1.33% 1.15% 0.91% 0.84% 0.68% 1.64%
5 35.71% 40.64% 10.78% 2.77% 2.01% 1.57% 1.29% 1.13% 0.93% 0.87% 0.71% 1.59%
6 35.39% 40.15% 13.10% 2.70% 1.82% 1.39% 1.11% 0.94% 0.79% 0.67% 0.58% 1.35%
7 35.20% 38.34% 15.46% 2.68% 1.81% 1.32% 1.06% 0.91% 0.76% 0.68% 0.54% 1.25%
8 29.43% 32.07% 15.99% 5.45% 4.22% 3.12% 2.45% 1.81% 1.41% 1.10% 0.88% 2.07%
9 21.40% 23.79% 13.16% 9.01% 7.60% 6.08% 4.90% 3.81% 2.99% 2.28% 1.76% 3.22%
10 19.42% 20.48% 13.68% 10.01% 8.64% 6.71% 5.50% 4.15% 3.34% 2.44% 1.95% 3.68%
11 16.62% 18.71% 14.22% 10.93% 9.35% 7.25% 5.98% 4.47% 3.61% 2.72% 2.18% 3.97%
12 16.36% 18.38% 14.19% 10.98% 9.49% 7.38% 6.09% 4.47% 3.68% 2.73% 2.17% 4.09%
1 16.52% 17.66% 13.96% 10.92% 9.51% 7.33% 6.20% 4.60% 3.77% 2.82% 2.30% 4.42%

2色だけ、3色だけに減色する映像効果

$
0
0

2色のグラデーションにするには normalize フィルタを使えばよいが、2色だけ、3色だけにするには lutyuv, lutrgb フィルタを使いこなすことで作ることが出来る。イメージとしては「ブラタモリ」のオープニングで見られる効果に似ている。

RGB を伸張させる normalize

2色効果

YUV

Y 輝度信号(輝度) が125 以下は 16、126 以上は 235 に変換し、UV 彩度信号は128の白黒に変換する。
ffplay -i input -vf lutyuv='(between(val,126,255)*219)+16':128:128,format=gray

RGB

RGB が125 以下は 0、126 以上は 255 の白黒に変換する。
ffplay -i input -vf format=rgb24,colorchannelmixer=.3:.59:.11:0:.3:.59:.11:0:.3:.59:.11:0,lutrgb='between(val,126,255)*255:between(val,126,255)*255:between(val,126,255)*255',format=gray

2色効果

3色効果

YUV

Y 輝度信号(輝度) が120 以下は 16、121 以上 155 以下は 128、156 以上は 235 に変換し、UV 彩度信号は128の白グレー黒に変換する。
ffplay -i input -vf lutyuv='st(0,gt(val,120)+gt(val,155));eq(ld(0),0)*16+eq(ld(0),1)*128+eq(ld(0),2)*235':128:128,format=gray

RGB

RGB が121 以下は 0、122 以上 155 以下は 128、156 以上は 255 の白グレー黒に変換する。
ffplay -i input -vf format=rgb24,colorchannelmixer=.3:.59:.11:0:.3:.59:.11:0:.3:.59:.11:0,lutrgb='st(0,gt(val,120)+gt(val,155));eq(ld(0),0)*0+eq(ld(0),1)*128+eq(ld(0),2)*255':'st(0,gt(val,120)+gt(val,155));eq(ld(0),0)*0+eq(ld(0),1)*128+eq(ld(0),2)*255:''st(0,gt(val,120)+gt(val,155));eq(ld(0),0)*0+eq(ld(0),1)*128+eq(ld(0),2)*255',format=gray

3色効果

4色以上

palettegen, paletteuse フィルタを使う。白グレー黒の4色に変換する。
ffmpeg -i input -filter_complex format=gray,split[v],palettegen=4:0:lime:2[pal],[v][pal]paletteuse=0:0:1 -vframes 1 four_tone_colors.png

4色効果

使ったフィルタの解説

ffmpeg で複数出力

$
0
0

1つのファイルにフィルタを使い分けたり、コピーしたり複数出力する方法のまとめ。

普通のコマンド。1入力を2度エンコードを行い2出力する。つまり負荷も2倍。
ffmpeg -i input.mp4 -movflags +faststart -vcodec libx264 -acodec copy output1.mp4 -vcodec libvpx-vp9 -acodec libopus output2.webm

1入力で複数コピー出力するコマンド。
ffmpeg -i input.mp4 -movflags +faststart -c copy -movflags +faststart output1.mp4 -c copy output2.mp4
ffmpeg -i input.mp4 -movflags +faststart -c copy -f tee -map 0:v -map 0:a "output1.mp4|output2.mp4"


さらにフィルタを挟むことも可能。
ffmpeg -i input.mp4 -filter_complex scale=640x360 -movflags +faststart -f tee -map 0:v -map 0:a -vcodec libx264 -acodec copy "output1.mp4|output2.mp4"

出力先がローカルではなく配信先も可能。
ffmpeg -i input.mp4 -vsync passthrough -frame_drop_threshold 4 -map 0:v -map 0:a -flags +global_header -movflags +faststart -vcodec libx264 -acodec aac -f tee "[f=flv:onfail=ignore]rtmp://hogehoeg|[f=flv:onfail=ignore]rtmp://piyopiyo|D:\output.flv"

複数解像度で配信して動画も保存するコマンド。
ffmpeg -i input.mp4 -vsync passthrough -frame_drop_threshold 4 -filter_complex split[1],scale=1280x720[720p];[1]scale=1920x1080[1080p] -map [720p] -map 0:a -flags +global_header -vcodec libx264 -acodec aac -f tee "[f=flv:onfail=ignore]rtmp://hogehoge|D:\output-720p.flv" -map [1080p] -map 0:a -flags +global_header -vcodec libx264 -acodec aac -f tee "[f=flv:onfail=ignore]rtmp://piyopiyo|D:\output-1080p.flv"

一度に複数解像度にエンコードするコマンド。
ffmpeg -i input.mp4 -filter_complex split=3[0][1],scale=1920x1080[1080p];[0]scale=1280x720[720p];[1]scale=640x360[360p] -map [1080p] -map 0:a -movflags +faststart -vcodec libx264 -acodec aac output-1080p.mp4 -map [720p] -map 0:a -movflags +faststart -vcodec libx264 -acodec aac output-720p.mp4 -map [360p] -map 0:a -movflags +faststart -vcodec libx264 -acodec aac output-360p.mp4

ネットラジオなどリアルタイム配信している動画をコピー出力と1.5倍速出力を同時に行うコマンド。
ffmpeg -i "http://hogehoge" -c copy -bsf:a aac_adtstoasc output.mp4 -vf "setpts=2*PTS/3" -af "atempo=1.5" -vcodec libx264 -acodec aac output-x1.5.mp4

さらに VOD RTMP 配信の場合はバッファを増やさないと保存が遅くなる。
ffmpeg -rtmp_buffer 36000000 -i "rtmp://hogehoge" -c copy output.flv -vf "setpts=2*PTS/3" -af "atempo=1.5" -vcodec libx264 -acodec aac output-x1.5.flv

関連記事

streamlink の使い方

$
0
0

livestreamer がメンテナンスされなくなりその後継に streamlink が現れた。基本コマンドは livestreamer と同じで新しいオプションの追加や、サイト対応が行われている。

Twitch, Ustream, Youtube に対応した livestreamer の使い方

対応しているすべてのサイト一覧:Plugins — Streamlink documentation

配布先:Releases · streamlink/streamlink
更新履歴:Changelog — Streamlink documentation

Windows を使っている場合はインストーラー版かポータブル版を選ぶことが出来る。インストーラー版は python も一緒にインストールする。そのほかの Mac や Linux などの OS にもソースコードからのインストールによって使うことができる。

Windows なら python も同梱されているポータブル版を使うのが手軽。
RosadinTV:Releases · streamlink/streamlink-portable

使い方

streamlink は livestreamer のオプションと互換のある CLI である。RosadinTV からポータブル版を使う場合は Streamlink.bat があるのでこれを実行してコマンドをコピペする。

基本コマンド
streamlink twitch.tv/day9tv --default-stream best -o output.ts

外部プレイヤーで再生するコマンド
streamlink twitch.tv/day9tv --default-stream best -p "E:tools\MPC-HC\mpc-hc.exe"

配信映像を渡せるプレイヤーは MPC-HC のほかに VLC や ffplay、mplayer などがある。
Players — Streamlink documentation

対応しているプロトコル一覧

名前 Prefix
Adobe HTTP Dynamic Streaming hds://
Akamai HD Adaptive Streaming akamaihd://
Apple HTTP Live Streaming hls:// hlvsvariant://
Real Time Messaging Protocol rtmp:// rtmpe:// rtmps:// rtmpt:// rtmpte://
Progressive HTTP, HTTPS, etc httpstream://

hls:// は1種類のストリーム。hlvsvariant:// は複数のストリームに対応している。さらにローカルファイルにも対応している。ファイルパスは絶対パスで日本語は含まないようにする。

streamlink hlsvariant://file://C:/hls/playlist.m3u8 --default-stream best -o output.ts

ローカルファイルの復号は ffmpeg のほうが手軽。
ffmpeg で Apple HTTP Live Streaming(HLS)を扱う

オプション

ほとんど livestreamer と同じなので多くはそちらを参照。streamlink で追加されたオプションを抜粋する。

公式ドキュメント:Command-Line Interface — Streamlink documentation

–hls-segment-ignore-names NAMES
セグメント番号を無視する
例:000,001,002

–hls-start-offset HH:MM:SS
指定時間分だけ早めて読み込む。ライブ配信の場合、マイナス値を指定すると終了時間から指定秒だけ録画しない
既定値:00:00:00

TED の日本語字幕を保存し動画に合わせる

$
0
0

TED のプレゼンテーション動画をブラウザやアプリで見るときに字幕が選択できるが、これを ffmpeg で PC に保存し動画に合わせる方法。わざわざ字幕付き動画は公式から普通に保存できるが2言語の字幕付きの動画に変換する方法も併せて紹介する。

TED: Ideas worth spreading

動画の保存方法は PC からは再生ページのプレイヤ右下の「Share」から動画、音声、字幕を焼き付けた(ハードサブ)動画が選択できる。字幕の保存方法は簡単な方法はないが、まずブラウザでソースコードを表示して「ted://talks/」の次に書いてある数字を控えておき字幕用のアドレスに記入する。プレイヤに日本語字幕が選択できなければもちろん保存は出来ない。昔は動画リンクから字幕IDは調べられたが調べられなくなっている。

日本語字幕用のアドレス(1234 の部分に上で調べた数値を記入)。英語の場合は末尾が eng。
https://www.ted.com/talks/subtitles/id/1234/lang/jpn

そのほかの言語については以下を参照。
Get subtitle for TED video

字幕をブラウザから保存すると、json 形式になりこれでは動画プレイヤで扱えないので ffmpeg で変換する。

ffmpeg で字幕を扱いやすい .srt に変換し保存する。
ffmpeg -i https://www.ted.com/talks/subtitles/id/1234/lang/jpn output.srt

ネット越しではなくて PC に json を保存しても変換できる。
ffmpeg -i ted.json output.srt

公式ドキュメント:FFmpeg Formats Documentation : tedcaptions

複数字幕を同時に表示するには複数の字幕を1つに合わせる。方法として手動でコピペする方法と「cat」コマンドで連結する方法がある。この場合は元データの json ではなく字幕形式に予め変換しておく。以下のコマンド例は2つの字幕を1つにする。
cat jp.srt en.srt > jp-en.srt

動画に合わせるには映像と音声をコピーし、字幕もコピーする。字幕ファイルは .mkv の方が扱いやすい。
ffmpeg -i input.mp4 -i jp-en.srt -map 0 -map 1 -c copy -c:s copy output.mkv

.mp4 なら字幕コーデックを mov_text にする。ただしこれだと複数字幕を一つにしたときに字幕が複数段に表示されないので複数字幕の表示には非推奨。
ffmpeg -i input.mp4 -i jp-en.srt -map 0 -map 1 -c copy -c:s mov_text output.mp4

関連記事
ass の字幕ファイルを動画に焼き付ける ass
字幕ファイルを動画に焼き付ける subtitles
【ffmpeg】 マルチトラックの動画の作り方

一部の niconico の API, https に対応へ

$
0
0

v1 は対応してるが v2 はまだ対応してない
3DS版「ニコニコ」で使用しているAPIまとめ – nanoway より一部を抜粋

https://ext.nicovideo.jp/api/getthumbinfo/sm9
https://flapi.nicovideo.jp/api/getrelation?video=sm9
https://api.ce.nicovideo.jp/nicoapi/v1/video.relation?v=sm9

https://api.ce.nicovideo.jp/nicoapi/v1/video.info?v=sm9

https://api.ce.nicovideo.jp/api/v1/community.array?id=co1

https://api.ce.nicovideo.jp/api/v1/step.video.ranking?date=2017-11-13&type=daily

https://api.ce.nicovideo.jp/api/v1/session.create?__format=json

2018年2月28日 v2 の対応確認
コンテンツ検索API V2 について

ただし、ニコ生で重要な getplayerstatus は未対応。

初版 2017年11月14日


自炊マンガの色補正

$
0
0

白くなるところが真っ白になってなかったり、黒になるところが真っ黒のになってないところを ffmpeg で補正する。方法はコントラストを上げて白はより白く、黒はより黒くする。今回は白黒ページの色補正だけでリサイズ(解像度を変える)、クロップ(指定範囲で切り取る)、デノイズは行わない。

自炊したときに .jpg で出力したときに使える方法であり、.pdf は ffmpeg では扱えない。一般的に Photoshop や GIMP を使う方法がよく紹介されているが、これらは一度 RGB にデコードして再度 .jpg 出力するときに YUV に変換するので処理が遅くなりがちであるが、以下の方法は RGB 変換を挟まないので処理が早い。

基本コマンド

最近のマンガのコマンド例。真っ白と真っ黒以外に色が多い場合。
ffplay -i input -vf eq=contrast=1.5,lutyuv='st(0,gt(val,64)+gt(val,230));eq(ld(0),0)*0+eq(ld(0),1)*val+eq(ld(0),2)*255':128:128
ffmpeg -i input -vf eq=contrast=1.5,lutyuv='st(0,gt(val,64)+gt(val,230));eq(ld(0),0)*0+eq(ld(0),1)*val+eq(ld(0),2)*255':128:128,format=yuvj420p output.jpg

昔のマンガのコマンド例。白と黒だけ。他の色がある場合は色飛びする。
ffplay -i input -vf eq=contrast=2,lutyuv=val:128:128
ffmpeg -i input -vf eq=contrast=2,lutyuv=val:128:128,format=yuvj420p output.jpg

画質設定

何も指定しなければ最適な品質指定で変換される。個別に指定する場合には -qscale:v [num] で 2 から 31 までの数値を指定する。何も指定しなければ frame= 1 fps=0.0 q=17.2 Lsize=N/A time=00:00:00.04 bitrate=N/A speed=0.321x のようにコンソールに表示され、q=17.2 の部分が qscale:v で指定した値になる。
ffmpeg -i input -vf eq=contrast=1.5,lutyuv='st(0,gt(val,64)+gt(val,230));eq(ld(0),0)*0+eq(ld(0),1)*val+eq(ld(0),2)*255':128:128,format=yuvj420p -qscale:v 15 output.jpg

画像をD&Dするバッチファイル(ffmpeg のパス指定を各自書き換える)

フィルタの解説

  • eq フィルタでコントラストを上げる、contrast=2 だと白黒だけになるので適宜調整する。
  • lutyuv フィルタの ‘st(0,gt(val,64)+gt(val,230));eq(ld(0),0)*0+eq(ld(0),1)*val+eq(ld(0),2)*255’:128:128 は Y 輝度信号が 64 以下は 0 にして、65 以上 230 以下はそのままの値にし、231 以上は 255 に変換する。後ろ2つの 128:128 は UV 青色と赤色成分の差分信号を 128 に変換する。
  • .jpg 出力なので format=yuvj420p でフルレンジ .jpg に指定する。

最適な値を調べるには

色が少なければコントラスト上げるだけでよいが、色が多いとコントラストを上げすぎると色が飛ぶのでコントラストを上げすぎない。圧縮率を高くするには黒と白の部分の値がどの値になるか eq フィルタの後に oscilloscope フィルタで調べてから lutyuv フィルタの下限と上限を指定して 0 と 255 に変換する。

oscilloscope フィルタで値を調べる

ffplay -i input -vf oscilloscope
ffplay -i input -vf eq=contrast=1.5,format=yuvj420p,oscilloscope
ffplay -i input -vf eq=contrast=1.5,lutyuv='st(0,gt(val,64)+gt(val,230));eq(ld(0),0)*0+eq(ld(0),1)*val+eq(ld(0),2)*255':128:128,format=yuvj420p,oscilloscope

関連記事

使ったフィルタなどの説明

使わなかったフィルタで関係するフィルタの説明

情熱のある番組の配信形式が変わる

$
0
0

今週の放送分から brightcove から boltdns に代わり master.m3u8 だと低ビットレートの 1080p になるのでこれを 720p に変更する。ダウンローダは youtube-dl と ffmpeg を使い2つとも同じフォルダに置いておく。 -F で調べたフォーマットを -f で指定する。音声フォーマットは 3つあるが、上から順にビットレートが 64k, 96k, 128k になるので3番目を指定する。master.m3u8 の調べ方は F12 で開発ツールを開き F5 でリロードし、動画を再生し、ネットワークタブに mas を入力すると master.m3u8 が見つかる。

youtube-dl: Download Page
Download FFmpeg

フォーマットの調べ方
youtube-dl "master.m3u8 の URL" -F

調べたフォーマットを -f で複数指定して保存する
youtube-dl "master.m3u8 の URL" -f 2000+audio-2-en__Main_ -o "output.mp4"

新しい映像の品質評価 libvmaf

$
0
0

Netflix が使っているエンコードされる前と後の動画の品質評価に使われている VMAF(Video Multimethod Assessment Fusion)スコアを ffmpeg で調べる。以前の記事に異なる解像度でも調べられると書いていたが間違いである。同じ解像度でないと調べられない。対応フォーマットは yuv420p, yuv422p, yuv444p, yuv420p10le, yuv422p10le, yuv444p10le になる。外部ライブラリフィルタなので別途インストールが必要である。しかし現在のところ Windows 環境ではおそらくリンクできていない。

2つの映像の画質評価をする SSIM
新しい映像の動きの評価 vmafmotion

VMAF の解説記事

基本コマンド

最終的な品質評価になる VMAF スコアは 100 が最高画質。配信向けには 80 程度を目標とするビットレートになるようにする。ログファイルに書いてある adm2, vif_scalex スコアは VMAF スコアの元となり 0(最低画質)から 1(最高画質)。motion2 は 0(動かない映像)から 20(ものすごく動く映像)。
ffmpeg -i main.mp4 -i reference.mp4 -filter_complex "libvmaf=model_path=vmaf_v0.6.1.pkl:log_path=log.xml:log_fmt=xml:enable_transform=0:phone_model=0:psnr=0:ssim=0:ms_ssim=0:pool=mean" -an -f null -
ffmpeg -i main.mp4 -i reference.mp4 -filter_complex "libvmaf=vmaf_v0.6.1.pkl:log.xml:xml:0:0:0:0:0:mean" -an -f null -

エンコードが終わるとコンソールの最後に以下のような結果が表示される。ログファイルで出力する場合はフレーム毎に指定オプション内容が出力される。Exec FPS は処理速度。

Exec FPS: 4.940972
VMAF score = 96.147066

リサイズした前後での VMAF スコアを調べるには同じアルゴリズムでエンコードする前の動画をフィルタでリサイズして調べる。

リサイズする前が 1920×1080、リサイズした後が 1280×720 で、リサイズ方法が scale フィルタの場合。
ffmpeg -i original.mp4 -vf scale=1280:720 -acodec copy 720p.mp4
ffmpeg -i original.mp4 -i 720p.mp4 -filter_complex "scale=1280:720,[1]libvmaf" -an -f null -

リサイズのアルゴリズムについては以下を参照。
Windows の ffmpeg で生放送する方法 : scale
Zライブラリを使ったリサイズフィルタ zscale

YUV の動画を比較する場合。
ffmpeg -video_size 1280x720 -pixel_format yuv420p -framerate 30 -i original.yuv -video_size 1280x720 -pixel_format yuv420p -framerate 30 -i reference.yuv -filter_complex libvmaf -an -f null -

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

オプション

調べる内容を増やすほど処理速度が遅くなる。

  • model_path[string]
    SVM(Support Vector Machines) で使われるモデルのパス指定
    既定値:”vmaf_v0.6.1.pkl”(インストールされているパス)
  • log_path[string]
    出力されるログファイルのパス指定
    既定値:無指定(指定するとログファイルが出力される)
  • log_fmt[string]
    ログファイルのフォーマット指定。xml, json が指定できる
    既定値:xml
  • enable_transform[boolean]
    transform を計算する
    既定値:0
  • phone_model[boolean]
    電話モデルを呼び出してノートPCやTVに適した通常より高い VMAFスコアを計算する。携帯電話などのモバイル端末は画面サイズが大きくなく視聴距離が近いためにビットレートを高くしてもそれほど高画質に見えないからである。詳細は ここを参照
    既定値:0
  • psnr[boolean]
    psnr も一緒にを計算する。60 が最高画質
    既定値:0
  • ssim[boolean]
    ssim も一緒にを計算する。1 が最高画質
    既定値:0
  • ms_ssim[boolean]
    ms_ssim も一緒にを計算する。1 が最高画質
    既定値:0
  • pool[string]
    VMAFスコアの計算方法。mean, min, harmonic mean(調和平均) が使える
    既定値:”mean”

2ファイル入力するフィルタの挙動設定 framesync にも対応している。

2018年2月のニコ生統計

$
0
0

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

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

来場者数とコメントの統計

一番下が今月のデータ。

来場者数 コメント数 放送時間(分)
2 112,112,065 179,775,874 79,295,391
3 113,619,356 189,164,506 83,144,732
4 104,390,292 170,694,597 74,563,712
5 108,762,387 185,789,806 78,324,011
6 96,564,313 165,031,308 70,683,815
7 97,027,609 157,663,941 71,580,954
8 100,883,920 159,644,561 73,158,073
9 92,914,596 149,262,134 72,026,031
10 91,401,317 146,516,782 73,278,328
11 80,614,139 132,978,182 68,545,519
12 76,732,631 122,932,433 62,856,863
1 66,883,587 106,703,589 58,162,131
2 73,753,829 117,836,049 64,797,952

全放送の来場者数とコメント数。30分枠で 6000以上の来場者数とコメント数を除外していたのを止めて全放送の来場者数とコメント数の統計に変更。平均値は除外した。

25% 中央値 75% 最大値 25% 中央値 75% 最大値
5 11 23 625,153 1 19 53 442,369 2
5 11 23 327,154 1 19 53 2,741,826 3
5 11 23 336,340 2 19 54 851,239 4
5 11 23 500,703 2 20 55 4,186,730 5
5 11 23 550,804 1 19 55 357,918 6
5 11 24 875,243 1 18 55 509,523 7
5 12 26 447,278 1 18 59 473,406 8
6 14 33 568,023 0 18 71 309,076 9
7 17 41 433,071 0 20 87 494,934 10
8 20 50 441,553 0 22 106 320,536 11
10 22 56 289,182 0 25 117 441,116 12
9 22 57 330,861 0 25 119 385,567 1
10 23 55 235,472 0 25 119 353,306 2

カテゴリタグとそれ以外のタグの割合

カテゴリタグの割合

カテゴリタグ 2018年2月 先月比 割合 前月比 来中 コ中
ゲーム 409,003 26,179 64.29% 0.35% 26 25
一般(その他) 155,404 9,413 24.43% 0.04% 20 37
描いてみた 14,851 -800 2.33% -0.28% 23 26
歌ってみた 17,164 1,390 2.70% 0.06% 17 21
動画紹介 29,623 745 4.66% -0.17% 2 0
R18 934 -274 0.15% -0.05% 17 9
演奏してみた 3,362 -88 0.53% -0.05% 16 36.5
動物 1,440 12 0.23% -0.01% 43 42
政治 1,408 141 0.22% 0.01% 66 129.5
講座 870 136 0.14% 0.01% 50 99
料理 1,797 450 0.28% 0.06% 20 54.5
踊ってみた 348 194 0.05% 0.03% 0 0
636,204 40,399

カテゴリタグ以外のタグの上位100選

ランク タグ名 総数 割合 前月比
1 PS4ゲーム配信 123,242 19.37% 3.16%
2 雑談 80,646 12.68% -0.76%
3 モンスターハンター:ワールド 68,079 10.70%
4 顔出し 59,375 9.33% -0.08%
5 初見歓迎 51,670 8.12% 0.05%
6 スマートフォン配信 48,133 7.57% 0.19%
7 萌え声 48,068 7.56% 2.52%
8 MHW 31,273 4.92% 4.31%
9 スマートフォン実況 29,441 4.63% -0.96%
10 クルーズ待ち 28,123 4.42% -0.22%
11 凸待ち 27,972 4.40% -0.12%
12 実況 26,167 4.11% -0.40%
13 HD配信 24,229 3.81%
14 対戦 23,425 3.68% -0.37%
15 #コンパス 23,413 3.68% -0.38%
16 niconico 23,219 3.65% -0.39%
17 nhnplayart 23,159 3.64% -0.38%
18 PUBG 20,542 3.23% -0.45%
19 PS4 19,360 3.04% 0.79%
20 艦これ 19,347 3.04% 0.90%
21 初見さん歓迎 18,704 2.94% -0.27%
22 過疎 16,246 2.55% -0.30%
23 Steam 14,226 2.24% -0.57%
24 まったり 13,585 2.14% -0.02%
25 PITACoreBox 13,144 2.07% 0.14%
26 モンスターハンターワールド 12,061 1.90% 1.55%
27 初心者 11,851 1.86% 0.09%
28 グラブル 10,615 1.67% -0.28%
29 モンハン 10,255 1.61% 1.22%
30 レトロゲーム 9,543 1.50% -0.15%
31 過疎放送 9,274 1.46% -0.27%
32 8,458 1.33% -0.10%
33 sampletag 8,365 1.31% 1.12%
34 作業用BGM 8,293 1.30% 0.03%
35 任天堂ゲーム配信 7,935 1.25% -0.30%
36 FGO 7,855 1.23% -0.61%
37 Shadowverse 7,650 1.20% -0.53%
38 アニソン 7,594 1.19% -0.06%
39 音楽 7,228 1.14% 0.06%
40 車載 7,182 1.13% -0.04%
41 スプラトゥーン2 6,946 1.09% -0.31%
42 ボカロ 6,806 1.07% 0.05%
43 アニメ 6,686 1.05% -0.13%
44 VOCALOID 6,401 1.01% 0.09%
45 イケボ 6,202 0.97% -0.08%
46 LOL 6,120 0.96% -0.06%
47 東方 6,074 0.95% 0.00%
48 モンハンワールド 5,686 0.89% 0.73%
49 無人放送 5,297 0.83% 0.07%
50 艦隊これくしょん 5,159 0.81% 0.20%
51 弾幕歓迎 4,989 0.78% 0.03%
52 アズールレーン 4,947 0.78% -0.48%
53 初見プレイ 4,892 0.77% -0.11%
54 MMD 4,781 0.75% 0.14%
55 RTA 4,706 0.74% 0.01%
56 グランブルーファンタジー 4,620 0.73% -0.10%
57 パチスロ 4,427 0.70% -0.12%
58 コメント募集 4,298 0.68% -0.04%
59 gdgd 4,196 0.66% -0.08%
60 ポケモン 4,122 0.65% 0.01%
61 FF14 4,079 0.64% -0.01%
62 モンスト 4,075 0.64% -0.14%
63 Splatoon2 4,029 0.63% -0.22%
64 歌詞 3,992 0.63% 0.03%
65 歌枠 3,929 0.62% 0.01%
66 レインボーシックス_シージ 3,859 0.61% -0.31%
67 ドラクエ10 3,810 0.60% -0.12%
68 デジタルTCG 3,756 0.59% -0.24%
69 おっさん 3,689 0.58% -0.09%
70 Cygames 3,651 0.57% -0.07%
71 PSO2 3,564 0.56% -0.22%
72 声真似 3,547 0.56% -0.04%
73 メンヘラ 3,452 0.54% -0.01%
74 FPS 3,397 0.53% -0.13%
75 ストリートファイターV 3,395 0.53% -0.18%
76 カラオケ 3,377 0.53% 0.01%
77 Minecraft 3,280 0.52% -0.14%
78 麻雀 3,271 0.51% -0.01%
79 ゲーム実況プレイ 3,222 0.51% -0.03%
80 外配信 3,042 0.48% 0.00%
81 エロゲ 2,998 0.47% 0.00%
82 ドラクエ 2,932 0.46% -0.37%
83 シャドウバース 2,877 0.45% -0.21%
84 アイドルマスター 2,845 0.45% -0.05%
85 北海道 2,812 0.44% -0.03%
86 ガンダムオンライン 2,787 0.44% -0.07%
87 弾幕 2,753 0.43% -0.02%
88 雑談配信者 2,746 0.43% -0.14%
89 デレステ 2,712 0.43% -0.12%
90 ドラゴンクエストライバルズ 2,669 0.42% 0.00%
91 モンスターハンター 2,645 0.42% 0.31%
92 R-18 2,628 0.41% -0.02%
93 dbd 2,577 0.41% -0.01%
94 真・三國無双8 2,575 0.40%
95 ドラゴンボール_ファイターズ 2,557 0.40%
96 花騎士 2,458 0.39% -0.04%
97 職人 2,443 0.38% -0.01%
98 垂れ流し 2,432 0.38% 0.01%
99 PC 2,394 0.38% -0.15%
100 低スペックpc 2,390 0.38% -0.01%

月間放送の多いコミュニティ数

100回以上から1000回以上まで。100回以上は200回以上以降を含む

100 200 300 400 500 600 700 800 900 1,000
2 6,103 1,465 426 161 82 56 42 36 31 28
3 6,635 1,812 567 215 103 65 48 40 31 30
4 5,682 1,456 442 172 80 49 40 33 26 24
5 5,955 1,534 463 166 78 57 45 37 31 25
6 5,036 1,213 366 128 69 50 39 34 29 25
7 4,752 1,181 367 134 76 49 37 33 26 25
8 3,993 892 250 99 58 44 35 30 26 21
9 1,625 357 129 72 51 39 28 25 21 18
10 974 216 90 59 46 37 32 30 24 22
11 465 109 54 41 38 28 23 20 17 17
12 331 78 43 31 24 21 20 19 17 16
1 234 55 30 25 24 20 17 17 12 8
2 280 68 42 31 24 24 20 18 15 14

放送数の統計

総配信数とその他のデータ

co_id はユニークコミュニティID数、来場者数とコメント数がともに100未満、50未満、10, 20 未満、オープンとフォロワー限定放送の割合

総配信数 co_id 100,100 50,50 10,20 open only
2 2,437,280 85,979 87.82% 71.47% 36.07% 90.32% 9.68%
3 2,542,659 85,086 87.91% 71.71% 36.59% 89.70% 10.30%
4 2,259,618 78,522 87.61% 71.21% 35.54% 90.01% 9.99%
5 2,342,188 80,887 87.05% 70.56% 35.09% 89.92% 10.08%
6 2,071,206 79,231 87.00% 70.80% 35.90% 89.97% 10.03%
7 2,011,626 81,910 86.44% 70.83% 36.54% 89.91% 10.09%
8 1,804,802 79,424 84.59% 69.06% 34.65% 89.93% 10.07%
9 1,193,336 73,944 79.52% 65.79% 34.03% 90.54% 9.46%
10 1,013,786 73,435 75.48% 61.21% 29.79% 87.63% 12.37%
11 794,003 65,607 71.63% 57.79% 26.94% 86.92% 13.08%
12 675,030 63,477 69.77% 55.65% 24.18% 89.54% 10.46%
1 601,135 62,753 69.41% 55.40% 25.36% 89.73% 10.27%
2 639,105 60,369 69.49% 55.41% 24.11% 89.43% 10.57%

配信時間別の割合

全放送を対象に、1枠の配信時間別の割合

30分未満 30-60 60-90 90-120 120-150 150-180 180-210 210-240 240-270 270-300 300-330 330分以上
2 18.33% 76.79% 2.99% 0.46% 0.29% 0.22% 0.16% 0.14% 0.11% 0.10% 0.08% 0.34%
3 18.21% 76.06% 4.01% 0.40% 0.25% 0.19% 0.15% 0.13% 0.10% 0.09% 0.07% 0.34%
4 18.37% 75.01% 4.88% 0.42% 0.26% 0.19% 0.15% 0.13% 0.10% 0.09% 0.07% 0.35%
5 18.33% 73.71% 6.23% 0.41% 0.26% 0.19% 0.15% 0.13% 0.10% 0.09% 0.07% 0.34%
6 18.27% 71.85% 8.15% 0.45% 0.27% 0.19% 0.14% 0.12% 0.10% 0.08% 0.07% 0.32%
7 17.83% 68.42% 11.93% 0.49% 0.28% 0.20% 0.15% 0.13% 0.10% 0.08% 0.07% 0.34%
8 17.37% 62.64% 15.82% 1.13% 0.78% 0.52% 0.38% 0.28% 0.21% 0.16% 0.12% 0.60%
9 18.16% 53.21% 10.20% 4.72% 3.73% 2.51% 1.89% 1.31% 0.97% 0.67% 0.51% 2.12%
10 19.01% 42.10% 12.80% 6.62% 5.42% 3.52% 2.73% 1.80% 1.37% 0.92% 0.71% 3.02%
11 17.91% 32.17% 15.68% 8.69% 7.05% 4.53% 3.59% 2.31% 1.81% 1.23% 0.96% 4.05%
12 15.83% 30.12% 16.67% 9.31% 7.70% 4.99% 3.93% 2.54% 1.97% 1.34% 1.05% 4.53%
1 15.91% 28.48% 16.42% 9.46% 7.86% 5.12% 4.19% 2.75% 2.13% 1.48% 1.17% 5.04%
2 15.32% 26.28% 16.34% 9.72% 8.38% 5.48% 4.86% 3.02% 2.40% 1.63% 1.31% 5.24%

配信時間別のコミュニティ率

全放送を対象に、配信時間別のコミュニティの割合。1つのコミュニティが複数の時間帯で1度でも放送すると再度カウントされるので全体の数はユニークコミュニティ数よりも多くなる。

30分未満 30-60 60-90 90-120 120-150 150-180 180-210 210-240 240-270 270-300 300-330 330分以上
2 36.11% 42.37% 7.17% 3.17% 2.28% 1.78% 1.41% 1.26% 1.04% 0.92% 0.77% 1.71%
3 36.49% 41.53% 8.66% 2.87% 2.05% 1.64% 1.33% 1.18% 0.98% 0.87% 0.74% 1.67%
4 35.85% 41.46% 9.62% 2.87% 2.07% 1.59% 1.33% 1.15% 0.91% 0.84% 0.68% 1.64%
5 35.71% 40.64% 10.78% 2.77% 2.01% 1.57% 1.29% 1.13% 0.93% 0.87% 0.71% 1.59%
6 35.39% 40.15% 13.10% 2.70% 1.82% 1.39% 1.11% 0.94% 0.79% 0.67% 0.58% 1.35%
7 35.20% 38.34% 15.46% 2.68% 1.81% 1.32% 1.06% 0.91% 0.76% 0.68% 0.54% 1.25%
8 29.43% 32.07% 15.99% 5.45% 4.22% 3.12% 2.45% 1.81% 1.41% 1.10% 0.88% 2.07%
9 21.40% 23.79% 13.16% 9.01% 7.60% 6.08% 4.90% 3.81% 2.99% 2.28% 1.76% 3.22%
10 19.42% 20.48% 13.68% 10.01% 8.64% 6.71% 5.50% 4.15% 3.34% 2.44% 1.95% 3.68%
11 16.62% 18.71% 14.22% 10.93% 9.35% 7.25% 5.98% 4.47% 3.61% 2.72% 2.18% 3.97%
12 16.36% 18.38% 14.19% 10.98% 9.49% 7.38% 6.09% 4.47% 3.68% 2.73% 2.17% 4.09%
1 16.52% 17.66% 13.96% 10.92% 9.51% 7.33% 6.20% 4.60% 3.77% 2.82% 2.30% 4.42%
2 14.89% 16.61% 13.96% 11.19% 9.93% 7.73% 6.63% 4.95% 4.13% 3.04% 2.52% 4.41%

ffplay で時間とフレーム数を表示する

$
0
0

drawtext フィルタを使って時間とフレーム数を表示する方法。ただしこの方法は固定フレームでしか使えない。30000/1001 などの部分を動画のフレーム数で指定する。表示される内容は左から秒時間、hms時間、フレーム数、フレーム数を5で割った余り、ピクチャータイプ。

30000/1001 fps の動画
ffplay -i input -vf "drawtext=fontsize=30:box=1:boxcolor=white@0.5:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{pts\:flt}-%{pts\:hms}-%{eif\:t*(30000/1001)\:d}-%{eif\:mod(t*(30000/1001),5)\:d}-%{pict_type}'"

24000/1001 fps の動画
ffplay -i input -vf "drawtext=fontsize=30:box=1:boxcolor=white@0.5:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{pts\:flt}-%{pts\:hms}-%{eif\:t*(24000/1001)\:d}-%{eif\:mod(t*(24000/1001),5)\:d}-%{pict_type}'"

上のコマンドを使っても時間やフレーム数が正しく表示されない動画。時に .ts ファイルなどの場合、ずれる時間を先に調べ下のコマンドで再生する。
ffmpeg -i input.ts -copyts -vf "drawtext=fontsize=30:box=1:boxcolor=white:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{pts\:flt}-%{eif\:t*(30000/1001)\:d}-%{eif\:mod(t*(30000/1001),5)\:d}-%{pict_type}'" -vframes 1 output.jpg

画像に表示される秒時間を setpts フィルタに指定する。
ffplay -i input.ts -vf "setpts=PTS-秒時間/TB,drawtext=fontsize=30:box=1:boxcolor=white:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{pts\:hms}-%{eif\:t*(30000/1001)\:d}-%{eif\:mod(t*(30000/1001),5)\:d}-%{pict_type}'"

.ts ファイルのフレームを tile フィルタで前フレームを下に表示しながら確認する。適宜出力解像度を scale フィルタで指定する。
ffplay -i input.ts -vf "setpts=PTS-7276.221467/TB,drawtext=fontsize=130:box=1:boxcolor=white:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{pts\:hms}-%{eif\:t*(30000/1001)\:d}-%{eif\:mod(t*(30000/1001),5)\:d}-%{pict_type}',crop=iw:3*ih/4:0:0,split[a],tile=8x1:overlap=8,scale=1440:-1,[a]vstack"

調べたフレームから trim フィルタを使ってカットして連結するもできる。ただしこの方法だと音声はカットできないので atrim フィルタを使いフレーム数を pts 変換、またはサンプル数に変換する。さらに concat フィルタで連結する場合、動画時間が長くなるほど、カット数が多くなるほど時間がかかる。

参考記事
windows – Displaying the current frame of a video after skipping using drawtext/start_number not evaluation any variables – Stack Overflow

ffmpeg で音楽CDをリップする libcdio の使い方

$
0
0

libcdio で手軽に音楽CDを再生したり、リッピングすることができるが、個別に時間指定しないとトラック毎にファイルが出力されないので他のプログラムと併用しないとあまり実用的ではない。

Zeranoe は非対応なので「お気に入りの動画を携帯で見よう」から保存する。
FFmpegダウンロード お気に入りの動画を携帯で見よう

コマンドサンプル

再生(ドライブレターを指定する)。
ffplay -f libcdio -ss 0 -i D:

エンコードする。
ffmpeg -f libcdio -ss 0 -i D: output.wav
ffmpeg -f libcdio -ss 0 -i D: output.flac

エンコード(開始から3分の音楽ファイル)。
ffmpeg -f libcdio -ss 0 -i D: -t 180 output.wav
ffmpeg -f libcdio -ss 0 -i D: -t 180 output.flac

トラック情報のメタデータを出力する。例えば以下のような ffmetadata.txt が出力されたとすると、カットする時間は START*TIMEBASE がそのトラックの開始時間になり、END*TIMEBASE がそのトラックの終了時間になる。
ffmpeg -f libcdio -i D: -f ffmetadata ffmetadata.txt

チャプター情報を json で出力する。json を見てカットする時間は start_time がそのトラックの開始時間になり、end_time がそのトラックの終了時間になる。
ffprobe -f libcdio -i D: -print_format json -show_chapters -loglevel error > chapters.json

チャプター毎に分割する例に mkvmerge を使う方法がある。分割されたファイル名は chapterd-001.mkv のような連番になる。
ffmpeg -f libcdio -ss 0 -i D: -map_metadata 0 -acodec flac output.mkv
mkvmerge -o chapterd.mkv --split chapters:all output.mkv

MKVToolNix Downloads – Matroska tools for Linux/Unix and Windows
MKVToolNix Download – VideoHelp : Windows はこちらから保存する。

関連記事

libcdioのコンパイル&インストール (libcdio-0.90以降) お気に入りの動画を携帯で見よう
Is there an elegant way to split a file by chapter using ffmpeg? – Stack Overflow

-ss 0 を指定しないと読み込めないバグが昔から報告されているが直る気配がない。
#3815 (libcdio only works with -ss 00) – FFmpeg

公式ドキュメント

FFmpeg Devices Documentation :: libcdio

個別チャンネルの値を映像の場所毎に確認できる datascope

$
0
0

YUV(A) や RGB(A)、GRAY の数値を16進数で映像にオーバーレイして確認できる datascope フィルタの使い方。数値ではなく映像で表示するフィルタに histogram フィルタがあるが datascope フィルタの方が直感的に任意の場所の数値が読み取れる。ただし表示できる範囲は全画面ではなく1px毎に表示されるので全体の変化を大まかに調べるのには向かない。

ffmpeg でヒストグラムを表示する

基本コマンド

ffplay input -vf datascope=s=1280x720:x=0:y=0:mode=0:axis=0

チャンネル数の数だけ 1px に表示される数が変わる。上から順番にチャンネルが割り振られる。チャンネルが増えるだけ表示できる解像度が狭くなる。

(4:6)から調べた datascope の出力サンプル

ffmpeg -f lavfi -i testsrc2=d=1,format=rgb24 -vf datascope=s=340x380:mode=color:x=4:y=6:axis=1 -vframes 1 datascope.png

入力映像が3チャンネル、8ビットの場合以下の解像度になる。

  • 横のpx数*20-2+22
  • 縦のpx数*36-2+22

上と左に表示される座標値を crop フィルタでカットする場合は左上 22x22p をカットする。入力解像度が奇数になる場合は format=rgb24, format=yuv444p で入力フォーマットを変更する。右と下をぎりぎりにカットする場合は、右に3px、下に7pxをカットする。
ffmpeg -f lavfi -i testsrc2=d=1,format=rgb24 -vf datascope=s=340x380:mode=color:x=4:y=6:axis=1,crop=340-22-3:380-22-7:22:22 -vframes 1 datascope-crop.png

縦横の比率を合わせる場合

scale2ref フィルタを使って解像度を揃える。

testsrc2 を crop したもの 16x10p

ffmpeg -f lavfi -i testsrc2=d=1,crop=16:10:4:6 -vframes 1 testsrc2-crop.png

datascope フィルタ後の解像度は 340(16*20-2+22)x380(10*36-2+22) になり、そこから左上の22x22px、右に3px、下に7pxをカットする。

縦そのままに横を伸ばす

ffmpeg -i testsrc2-crop.png -filter_complex split[a],datascope=s=340x380:mode=color:axis=1,crop=340-22-3:380-22-7:22:22[b];[b][a]scale2ref='if(gt(iw,ih),(iw*20-2-3)*dar,iw*20-2-3):if(gt(ih,iw),(ih*36-2-7)*dar,ih*36-2-7)'[b0][a0] -map [b0] datascope-scale0.png -map [a0] -f null -
横をそのままに縦を縮める

ffmpeg -i testsrc2-crop.png -filter_complex split[a],datascope=s=340x380:mode=color:axis=1,crop=340-22-3:380-22-7:22:22[b];[b][a]scale2ref='if(gt(iw,ih),iw*20-5,(iw*20-5)/dar):if(gt(ih,iw),ih*36-9,(ih*36-9)/dar)'[b0][a0] -map [b0] datascope-scale1.png -map [a0] -f null -

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

オプション

  • size, s[image_size]
    出力解像度。表示する座標に横は20倍以上、縦は1チャンネルあたり12倍以上必要
    既定値。hd720(1280×720)
  • x[int]
    左上を 0 とした表示する横軸の座標指定
    既定値:0
  • y[int]
    左上を 0 とした表示する縦軸の座標指定
    既定値:0
  • mode[int] 表示モードの指定
    • 0, mono:黒背景に白色数字。既定値
    • 1, color:黒背景に元映像の色数字
    • 2, color2:元映像の背景に数字を読みやすい色に変える
  • axis[boolean]
    既定値:0(無効)
    上と左に座標の値を表示する。有効化すると表示範囲が狭まる
  • opacity[float]
    背景の透過指定
    既定値:0.75
    範囲:0 から 1 まで

2018年3月のニコ生統計

$
0
0

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

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

来場者数とコメントの統計

一番下が今月のデータ。

来場者数 コメント数 放送時間(分)
3 113,619,356 189,164,506 83,144,732
4 104,390,292 170,694,597 74,563,712
5 108,762,387 185,789,806 78,324,011
6 96,564,313 165,031,308 70,683,815
7 97,027,609 157,663,941 71,580,954
8 100,883,920 159,644,561 73,158,073
9 92,914,596 149,262,134 72,026,031
10 91,401,317 146,516,782 73,278,328
11 80,614,139 132,978,182 68,545,519
12 76,732,631 122,932,433 62,856,863
1 66,883,587 106,703,589 58,162,131
2 73,753,829 117,836,049 64,797,952
3 88,055,437 128,685,553 70,501,417

全放送の来場者数とコメント数。30分枠で 6000以上の来場者数とコメント数を除外していたのを止めて全放送の来場者数とコメント数の統計に変更。平均値は除外した。

25% 中央値 75% 最大値 25% 中央値 75% 最大値
5 11 23 327,154 1 19 53 2,741,826 3
5 11 23 336,340 2 19 54 851,239 4
5 11 23 500,703 2 20 55 4,186,730 5
5 11 23 550,804 1 19 55 357,918 6
5 11 24 875,243 1 18 55 509,523 7
5 12 26 447,278 1 18 59 473,406 8
6 14 33 568,023 0 18 71 309,076 9
7 17 41 433,071 0 20 87 494,934 10
8 20 50 441,553 0 22 106 320,536 11
10 22 56 289,182 0 25 117 441,116 12
9 22 57 330,861 0 25 119 385,567 1
10 23 55 235,472 0 25 119 353,306 2
10 23 57 938,474 0 23 117 347,875 3

カテゴリタグとそれ以外のタグの割合

カテゴリタグの割合

カテゴリタグ 2018年3月 先月比 割合 前月比 来中 コ中
ゲーム 445,935 36,932 63.79% -0.50% 27 25
一般(その他) 176,618 21,214 25.26% 0.84% 20 29
描いてみた 16,794 1,943 2.40% 0.07% 23 23
歌ってみた 18,555 1,391 2.65% -0.04% 18 22
動画紹介 28,864 -759 4.13% -0.53% 2 0
R18 1,451 517 0.21% 0.06% 16 8
演奏してみた 3,762 400 0.54% 0.01% 17 15
動物 1,626 186 0.23% 0.01% 44 43
政治 1,576 168 0.23% 0.00% 88 179.5
講座 1,095 225 0.16% 0.02% 59 90
料理 1,628 -169 0.23% -0.05% 17 41
踊ってみた 1,184 836 0.17% 0.11% 2 0
699,088 63,645

カテゴリタグ以外のタグの上位100選

ランク タグ名 総数 割合 前月比
1 PS4ゲーム配信 128,300 18.35% -1.02%
2 雑談 88,154 12.61% -0.07%
3 顔出し 61,174 8.75% -0.58%
4 初見歓迎 53,586 7.67% -0.46%
5 萌え声 51,720 7.40% -0.16%
6 スマートフォン配信 43,520 6.23% -1.34%
7 HD配信 42,467 6.07% 2.27%
8 モンスターハンター:ワールド 40,242 5.76% -4.94%
9 クルーズ待ち 32,079 4.59% 0.17%
10 凸待ち 31,744 4.54% 0.14%
11 スマートフォン実況 29,125 4.17% -0.46%
12 実況 25,243 3.61% -0.50%
13 PUBG 24,253 3.47% 0.24%
14 艦これ 22,576 3.23% 0.19%
15 対戦 22,244 3.18% -0.50%
16 #コンパス 22,177 3.17% -0.51%
17 niconico 22,011 3.15% -0.50%
18 nhnplayart 21,969 3.14% -0.50%
19 初見さん歓迎 21,404 3.06% 0.12%
20 sampletag 18,668 2.67% 1.36%
21 MHW 18,605 2.66% -2.25%
22 過疎 17,630 2.52% -0.03%
23 PS4 16,596 2.37% -0.67%
24 Steam 16,318 2.33% 0.10%
25 グラブル 15,668 2.24% 0.57%
26 まったり 13,955 2.00% -0.14%
27 PITACoreBox 12,972 1.86% -0.21%
28 初心者 12,177 1.74% -0.12%
29 Fortnite 12,064 1.73% 1.54%
30 レトロゲーム 10,577 1.51% 0.01%
31 過疎放送 10,546 1.51% 0.05%
32 任天堂ゲーム配信 9,822 1.41% 0.16%
33 Bloodborne 9,499 1.36% 1.27%
34 Shadowverse 8,873 1.27% 0.07%
35 作業用BGM 8,821 1.26% -0.04%
36 8,751 1.25% -0.08%
37 スプラトゥーン2 8,244 1.18% 0.09%
38 アニソン 8,001 1.14% -0.05%
39 音楽 7,782 1.11% -0.02%
40 車載 7,263 1.04% -0.09%
41 FGO 7,211 1.03% -0.20%
42 イケボ 7,199 1.03% 0.05%
43 アニメ 7,024 1.00% -0.05%
44 LOL 6,957 1.00% 0.03%
45 レインボーシックス_シージ 6,765 0.97% 0.36%
46 グランブルーファンタジー 6,575 0.94% 0.21%
47 ボカロ 6,431 0.92% -0.15%
48 東方 6,231 0.89% -0.06%
49 モンハン 6,211 0.89% -0.72%
50 艦隊これくしょん 6,137 0.88% 0.07%
51 VOCALOID 5,898 0.84% -0.16%
52 モンスターハンターワールド 5,772 0.83% -1.07%
53 初見プレイ 5,460 0.78% 0.01%
54 RTA 5,249 0.75% 0.01%
55 Cygames 5,148 0.74% 0.16%
56 パチスロ 5,138 0.74% 0.04%
57 Splatoon2 5,050 0.72% 0.09%
58 無人放送 4,969 0.71% -0.12%
59 歌枠 4,968 0.71% 0.09%
60 弾幕歓迎 4,958 0.71% -0.08%
61 コメント募集 4,950 0.71% 0.03%
62 アズールレーン 4,683 0.67% -0.11%
63 gdgd 4,565 0.65% -0.01%
64 モンスト 4,506 0.64% 0.00%
65 ドラクエ10 4,430 0.63% 0.03%
66 FF14 4,424 0.63% -0.01%
67 MMD 4,386 0.63% -0.12%
68 FPS 4,219 0.60% 0.07%
69 デジタルTCG 4,199 0.60% 0.01%
70 歌詞 4,199 0.60% -0.03%
71 PSO2 4,076 0.58% 0.02%
72 おっさん 4,076 0.58% 0.00%
73 Minecraft 3,988 0.57% 0.05%
74 ポケモン 3,970 0.57% -0.08%
75 ゲーム実況プレイ 3,804 0.54% 0.04%
76 麻雀 3,707 0.53% 0.02%
77 カラオケ 3,685 0.53% 0.00%
78 シャドウバース 3,640 0.52% 0.07%
79 声真似 3,625 0.52% -0.04%
80 メンヘラ 3,555 0.51% -0.03%
81 外配信 3,496 0.50% 0.02%
82 PC 3,477 0.50% 0.12%
83 ストリートファイターV 3,429 0.49% -0.04%
84 dbd 3,427 0.49% 0.09%
85 ドラクエ 3,423 0.49% 0.03%
86 初見さん大歓迎 3,301 0.47% 0.13%
87 イケメン 3,277 0.47% 0.09%
88 ドラゴンクエストライバルズ 3,226 0.46% 0.04%
89 モンハンワールド 3,132 0.45% -0.45%
90 アイドルマスター 3,097 0.44% 0.00%
91 ガンダムオンライン 3,081 0.44% 0.00%
92 デレステ 3,057 0.44% 0.01%
93 弾幕 3,037 0.43% 0.00%
94 エロゲ 3,007 0.43% -0.04%
95 プリコネR 2,968 0.42% 0.23%
96 北海道 2,922 0.42% -0.02%
97 プリンセスコネクト 2,904 0.42% 0.20%
98 R-18 2,796 0.40% -0.01%
99 ギター 2,699 0.39% 0.04%
100 R6S 2,694 0.39% 0.13%

月間放送の多いコミュニティ数

100回以上から1000回以上まで。100回以上は200回以上以降を含む

100 200 300 400 500 600 700 800 900 1,000
3 6,635 1,812 567 215 103 65 48 40 31 30
4 5,682 1,456 442 172 80 49 40 33 26 24
5 5,955 1,534 463 166 78 57 45 37 31 25
6 5,036 1,213 366 128 69 50 39 34 29 25
7 4,752 1,181 367 134 76 49 37 33 26 25
8 3,993 892 250 99 58 44 35 30 26 21
9 1,625 357 129 72 51 39 28 25 21 18
10 974 216 90 59 46 37 32 30 24 22
11 465 109 54 41 38 28 23 20 17 17
12 331 78 43 31 24 21 20 19 17 16
1 234 55 30 25 24 20 17 17 12 8
2 280 68 42 31 24 24 20 18 15 14
3 317 91 54 43 42 41 36 33 26 17

放送数の統計

総配信数とその他のデータ

co_id はユニークコミュニティID数、来場者数とコメント数がともに100未満、50未満、10, 20 未満、オープンとフォロワー限定放送の割合

総配信数 co_id 100,100 50,50 10,20 open only
3 2,542,659 85,086 87.91% 71.71% 36.59% 89.70% 10.30%
4 2,259,618 78,522 87.61% 71.21% 35.54% 90.01% 9.99%
5 2,342,188 80,887 87.05% 70.56% 35.09% 89.92% 10.08%
6 2,071,206 79,231 87.00% 70.80% 35.90% 89.97% 10.03%
7 2,011,626 81,910 86.44% 70.83% 36.54% 89.91% 10.09%
8 1,804,802 79,424 84.59% 69.06% 34.65% 89.93% 10.07%
9 1,193,336 73,944 79.52% 65.79% 34.03% 90.54% 9.46%
10 1,013,786 73,435 75.48% 61.21% 29.79% 87.63% 12.37%
11 794,003 65,607 71.63% 57.79% 26.94% 86.92% 13.08%
12 675,030 63,477 69.77% 55.65% 24.18% 89.54% 10.46%
1 601,135 62,753 69.41% 55.40% 25.36% 89.73% 10.27%
2 639,105 60,369 69.49% 55.41% 24.11% 89.43% 10.57%
3 699,849 61,807 69.75% 55.88% 24.78% 90.48% 9.52%

配信時間別の割合

全放送を対象に、1枠の配信時間別の割合

30分未満 30-60 60-90 90-120 120-150 150-180 180-210 210-240 240-270 270-300 300-330 330分以上
3 18.21% 76.06% 4.01% 0.40% 0.25% 0.19% 0.15% 0.13% 0.10% 0.09% 0.07% 0.34%
4 18.37% 75.01% 4.88% 0.42% 0.26% 0.19% 0.15% 0.13% 0.10% 0.09% 0.07% 0.35%
5 18.33% 73.71% 6.23% 0.41% 0.26% 0.19% 0.15% 0.13% 0.10% 0.09% 0.07% 0.34%
6 18.27% 71.85% 8.15% 0.45% 0.27% 0.19% 0.14% 0.12% 0.10% 0.08% 0.07% 0.32%
7 17.83% 68.42% 11.93% 0.49% 0.28% 0.20% 0.15% 0.13% 0.10% 0.08% 0.07% 0.34%
8 17.37% 62.64% 15.82% 1.13% 0.78% 0.52% 0.38% 0.28% 0.21% 0.16% 0.12% 0.60%
9 18.16% 53.21% 10.20% 4.72% 3.73% 2.51% 1.89% 1.31% 0.97% 0.67% 0.51% 2.12%
10 19.01% 42.10% 12.80% 6.62% 5.42% 3.52% 2.73% 1.80% 1.37% 0.92% 0.71% 3.02%
11 17.91% 32.17% 15.68% 8.69% 7.05% 4.53% 3.59% 2.31% 1.81% 1.23% 0.96% 4.05%
12 15.83% 30.12% 16.67% 9.31% 7.70% 4.99% 3.93% 2.54% 1.97% 1.34% 1.05% 4.53%
1 15.91% 28.48% 16.42% 9.46% 7.86% 5.12% 4.19% 2.75% 2.13% 1.48% 1.17% 5.04%
2 15.32% 26.28% 16.34% 9.72% 8.38% 5.48% 4.86% 3.02% 2.40% 1.63% 1.31% 5.24%
3 18.44% 24.34% 14.55% 10.26% 8.65% 5.86% 4.71% 2.98% 2.30% 1.55% 1.27% 5.09%

配信時間別のコミュニティ率

全放送を対象に、配信時間別のコミュニティの割合。1つのコミュニティが複数の時間帯で1度でも放送すると再度カウントされるので全体の数はユニークコミュニティ数よりも多くなる。

30分未満 30-60 60-90 90-120 120-150 150-180 180-210 210-240 240-270 270-300 300-330 330分以上
3 36.49% 41.53% 8.66% 2.87% 2.05% 1.64% 1.33% 1.18% 0.98% 0.87% 0.74% 1.67%
4 35.85% 41.46% 9.62% 2.87% 2.07% 1.59% 1.33% 1.15% 0.91% 0.84% 0.68% 1.64%
5 35.71% 40.64% 10.78% 2.77% 2.01% 1.57% 1.29% 1.13% 0.93% 0.87% 0.71% 1.59%
6 35.39% 40.15% 13.10% 2.70% 1.82% 1.39% 1.11% 0.94% 0.79% 0.67% 0.58% 1.35%
7 35.20% 38.34% 15.46% 2.68% 1.81% 1.32% 1.06% 0.91% 0.76% 0.68% 0.54% 1.25%
8 29.43% 32.07% 15.99% 5.45% 4.22% 3.12% 2.45% 1.81% 1.41% 1.10% 0.88% 2.07%
9 21.40% 23.79% 13.16% 9.01% 7.60% 6.08% 4.90% 3.81% 2.99% 2.28% 1.76% 3.22%
10 19.42% 20.48% 13.68% 10.01% 8.64% 6.71% 5.50% 4.15% 3.34% 2.44% 1.95% 3.68%
11 16.62% 18.71% 14.22% 10.93% 9.35% 7.25% 5.98% 4.47% 3.61% 2.72% 2.18% 3.97%
12 16.36% 18.38% 14.19% 10.98% 9.49% 7.38% 6.09% 4.47% 3.68% 2.73% 2.17% 4.09%
1 16.52% 17.66% 13.96% 10.92% 9.51% 7.33% 6.20% 4.60% 3.77% 2.82% 2.30% 4.42%
2 14.89% 16.61% 13.96% 11.19% 9.93% 7.73% 6.63% 4.95% 4.13% 3.04% 2.52% 4.41%
3 15.87% 16.10% 13.42% 11.43% 9.98% 7.84% 6.51% 4.93% 4.05% 3.01% 2.46% 4.40%

ffmpeg 4.0 リリース

$
0
0

2018年4月20日に ffmpeg 4.0 Wu(Chien-Shiung Wu, 呉健雄) がリリースされた。今回のリリースはメジャーアップデートとなり、3.4 以降に追加された新機能の中からマスターにしか追加されていなかったフィルタやエンコーダ、デコーダ等の新機能が全て取り込まれた。今回は特にハードウェアアクセレーション関係のコミットが多い印象である。

前回記事
ffmpeg 3.4 リリース

RELEASE NOTES for FFmpeg 4.0 “Wu”

3.4 以降に取り込まれた機能の一覧
Changelog 3.4 to 4.0 < git.videolan.org Git

気になった新機能をいくつか紹介

mp4 の暗号化、復号方法
ffmpeg -f lavfi -i testsrc2=d=10 -c:v libx264 -encryption_scheme cenc-aes-ctr -encryption_key 76a6c65c5ea762046bd749a2e632ccbb -encryption_kid a7e61c373e219033c21091fa607bf3b8 encrypted.mp4
ffmpeg -decryption_key 76a6c65c5ea762046bd749a2e632ccbb -i encrypted.mp4 -c copy decrypted.mp4

追加されたフィルタで記事にしているフィルタ
複数の映像を任意の割合でミックスする mix

ffprobe の使い方

$
0
0

動画や音声、画像ファイルを調べるのに ffmpeg で表示される以上のことを調べるときに使う ffprobe の使い方。grep, awk などから正規表現を使って必要なデータを取る方法もあるが、今回はそうでなくオプションを指定して必要なデータを表示する方法を紹介する。出力フォーマット指定ができるので json, xml からパースすれば正規表現で無理に取る必要はない。

ffprobe では vf, af, filter_complex が使えないので lavfi デバイスで読み込み、そこからフィルタを使う。よって映像は rawvideo、音声は pcm_f32le になるのに注意。

基本コマンド

オプションを何も付けなければ ffmpeg と同じ表示になる。
ffprobe -i input

コンテナストリームの情報を表示する。これが基本の出力内容になりこれから必要なものだけを出力したり、パケット単位で出力したりもできる。
ffprobe -i input -show_streams

ffmpeg などで表示される configure オプションやライブラリのバージョンは -hide_banner で非表示にできる。
ffprobe -hide_banner -i input -show_streams

ffprobe の内容だけが必要なら -v error を付ける。
ffprobe -v error -i input -show_streams

解像度を表示する。
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -i input

フレームレート、映像の開始時間、映像の時間を表示する。
ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate,start_time,duration -i input

パケット毎の pts_time,dts_time,size,flags(フレームタイプ, K_ がキーフレーム)を開始から10秒間 log.txt にリダイレクトさせる。
ffprobe -v error -i input -select_streams v:0 -show_entries packet=pts_time,dts_time,size,flags -read_intervals "%+10" > log.txt

pts_time と signalstats フィルタから YMIN を開始から1秒間 YMIN.txt にリダイレクトさせる。
ffprobe -v error -f lavfi -i movie=input.mp4,signalstats -show_entries packet=pts_time -show_entries packet_tags=lavfi.signalstats.YMIN -read_intervals "%1" > YMIN.txt

lavfi デバイスで読み込む方法は movie, amovie 入力の設定内容 を参照。
packet_tags で使えるフィルタは meta | ニコラボ で検索。

16進数 ASCII のテキスト(show_data.txt)にリダイレクトする。コンソールにそのまま表示するとデータ量が多くおそらく固まるので必ずリダイレクトさせる。
ffprobe -v error -show_packets -show_data -i img > show_data.txt

公式ドキュメント : ffprobe Documentation
公式のWiki : FFprobeTips – FFmpeg

オプション

  • -unit
    start_time, duration, bit_rate, sample_rate に単位が付く
  • -prefix
    start_time, sample_rate, bit_rate の表示が2進接頭辞(K)表示に変わる
  • -sexagesimal
    start_time, duration の書式が60進数の時間表示に変わる
  • -pretty
    表示が KHz, Kbit/s になり読みやすくなる
  • -print_format, of
    default, csv, flat, ini, json, xml が使える。詳しくは後述
  • -select_streams
    フレーム毎のデータを表示。show_streams, show_packets, etc と併用する。map と同じように v, a, 0:v, 0:a などと指定する
  • -sections
    セクション階層の表示
  • -show_data
    パケット毎のデータを16進数 ASCII のテキストで表示。show_packets を指定すればパケットのデータを出力し、show_streams を指定すればコーデックの extradata を出力する
  • -show_data_hash
    show_packets を指定すればパケット毎の指定したアルゴリズムのハッシュを表示。show_streams を指定すればコーデックの extradata_hash を表示
  • -show_error
    “ERROR”セクションにエラーを表示。何もなければ出力しない
  • -show_format
    “FORMAT”セクションにコンテナフォーマットを表示。シンプルにデータ表示されるので使い勝手がよい
    表示内容は filename, nb_streams, nb_programs, format_name, format_long_name, start_time, duration, size, bit_rate, probe_score
  • -show_frames
    フレーム単位で表示
  • -show_entries
    表示する内容の指定。section_entries を指定しなければすべてを表示。詳しくは後述
  • -show_packets
    パケット単位で表示
  • -show_programs
    “PROGRAM”セクションをプログラム内容を表示
    表示内容は program_id, program_num, nb_streams, pmt_pid, pcr_pid, start_pts, start_time, end_pts, end_time, TAG:service_name, TAG:service_provider
  • -show_streams
    ストリーム内容の表示
  • -show_chapters
    “CHAPTER”セクションにチャプター別のデータを表示
    表示内容は id, time_base, start, start_time, end, end_time, TAG:title
  • -count_frames
    フレーム数の表示。-show_entries stream と併用。nb_read_frames に表示される
  • -count_packets
    パケット数の表示。-show_entries stream と併用。nb_read_packets に表示される
  • -show_program_version
    “PROGRAM_VERSION”セクションにプログラムのバージョン表示
    表示内容は version, copyright, compiler_ident, configuration
  • -show_library_versions
    “LIBRARY_VERSION”セクションにライブラリのバージョン表示
    表示内容は libavutil, libavcodec, libavformat, libavdevice, libavfilter, libswscale, libswresample, libpostproc
  • -show_versions
    show_program_version, show_library_versions を同時指定
  • -show_pixel_formats
    “PIXEL_FORMAT”セクションに対応したピクセルフォーマットを表示
  • -read_intervals
    調べるデータの範囲指定。パケット単位と秒単位がある。詳しくは後述
  • -i
    入力ファイルの指定。無指定でも入力ファイルとして扱える。ffplay と同じ

print_format, of

default

無指定だとこれになり、対応する FORMAT, STREAM と PROGRAM_STREAM セクションにメタデータタグを表示する。
表示形式
[SECTION]
key1=val1
...
keyN=valN
[/SECTION]

オプション内容

  • nokey, nk[boolean]
    有効にすると key=val の key を表示しない
    既定値:0(表示する)
  • noprint_wrappers, nw[boolean]
    有効にするとセクション名を表示しない
    既定値:0(表示する)
compact, csv

1つのセクションを1行でカンマ区切りに表示し、対応する “FORMAT”, “STREAM” セクションのメタデータタグを表示する。メタデータタグキーが表示される場合は接頭辞 “tag:” が付く。
表示形式
section|key1=val1| ... |keyN=valN
オプション内容

  • item_sep, s[string]
    セパレータの指定
    既定値:”,”(カンマ)
  • nokey, nk[boolean]
    有効にすると key=val の key を表示しない
    既定値:1(表示しない)
  • escape, e[string]
    エスケープ方法の指定
    • c
      C言語のようなエスケープ。既定値
    • csv
      CSVのようなエスケープ
    • none
      エスケープしない
  • rint_section, p[boolean]
    セクション名の表示指定
    既定値:1(表示する)
flat

スクリプトと連携しやすい形式。key=value 形式が “streams.stream.3.tags.foo=bar” 形式になる。
オプション内容

  • sep_char, s[string]
    セパレータの指定
    既定値:”.”(ピリオド)
  • hierarchical, h[boolean]
    セクション名の表示指定
    既定値:1(表示する)
ini

ini 形式で表示する。

  • メタデータファイルは UTF-8 でエンコードされた INI 形式のテキストファイルで構成される
  • ‘.’はサブグループのセパレータである
  • 改行の ‘\t’, ‘\f’, ‘\b’ 文字はエスケープされる
  • ‘\’ はエスケープ文字である
  • ‘#’ の後ろはコメント扱いになる
  • ‘=’ は key/value のセパレータである
  • ‘:’ は使われないが key/value セパレータをパースする

オプション内容
hierarchical, h[boolean]
セクション名の表示指定
既定値:1(表示する)

json

json 形式で表示する。
オプション内容
compact, c[boolean]
有効にすると1行表示になる
既定値:0(1行で表示しない)

xml

xml 形式で表示する。

  • fully_qualified, q[boolean]
    完全に XSD ファイルの仕様に沿った形で表示する
    既定値:0(厳格ではない)
  • xsd_compliant, x[boolean]
    完全に XSD ファイルの仕様に沿った形か確認する。有効にすると fully_qualified, q も有効になる
    既定値:0(確認しない)

show_entries

書式
LOCAL_SECTION_ENTRIES ::= SECTION_ENTRY_NAME[,LOCAL_SECTION_ENTRIES]
SECTION_ENTRY ::= SECTION_NAME[=[LOCAL_SECTION_ENTRIES]]
SECTION_ENTRIES ::= SECTION_ENTRY[:SECTION_ENTRIES]

パケットにはpts_time,duration_time,stream_index を表示し、ストリームには index,codec_type を表示する。
show_entries packet=pts_time,duration_time,stream_index:stream=index,codec_type

“format” セクションはすべてを表示し、”stream” セクションでは codec_type だけを表示する。
show_entries format:stream=codec_type

“stream, format” セクションですべてのタグを表示する。
show_entries stream_tags:format_tags

“stream” セクションで表示可能ならタイトルタグを表示する。
show_entries stream_tags=title

“packet” セクションで表示可能なら signalstats フィルタの YAVG を表示する。
show_entries packet_tags=lavfi.signalstats.YAVG

show_entries stream の表示例

show_entries packet の抜粋

show_entries format の表示例

read_intervals

書式
INTERVAL ::= [START|+START_OFFSET][%[END|+END_OFFSET]]
INTERVALS ::= INTERVAL[,INTERVALS]

  • 実際に使うには “” で数値を囲む
  • 指定した値は完璧ではないので多少の余分を持って指定する
  • “%” から左が1セクション(開始位置)、右が2セクション(終了位置)
  • 1セクションが無記入なら最初から、2セクションが無記入なら最後まで
  • “+” は相対位置、無指定は絶対位置
  • “#” はパケット数、数値なら時間(ss, hh:mm:ss 形式)
  • “複数の位置を指定するには “,” でつなげる

10秒から始まり、そこから20秒間(相対位置)と、1分30秒から1分45秒(絶対位置)までの例。
10%+20,01:30%01:45

1分23秒から始まり、そこから42パケット(相対位置)。
01:23%+#42

開始0秒(1セクション無指定)から20秒まで。
%+20

開始0秒(1セクション無指定)から2分30秒まで。
%02:30

可変フレームを検出する vfrdet

$
0
0

可変フレームか固定フレームかを調べることが出来る vfrdet フィルタ。コンソールには総フレーム数と可変フレーム数、 pts 間隔の最大値最小値が表示される。

基本コマンド

ffmpeg -i input -an -vf vfrdet -f null -

表示ログの例

固定フレームなら右に総フレーム数、左に可変フレーム数。

[Parsed_vfrdet_0 @ 000000000295fe80] VFR:0.000000 (0/34046)

可変フレームなら右に総フレーム数とは限らず、左に可変フレーム数かもよく分からない。pts 間隔の最大値最小値。

[Parsed_vfrdet_0 @ 00000000004e7f80] VFR:0.641629 (89787/50149) min: 0 max: 35)

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

pts 間隔を調べるには ffprobe で調べる方法と、mkvtimestamp_v2 で調べる方法があるが、2つの方法が一致するとも限らない。

ffprobe
ffprobe -v error -i input -select_streams v:0 -show_entries packet=pts_time > pts_time.txt

mkvtimestamp_v2
ffmpeg -i input -an -f mkvtimestamp_v2 mkvtimestamp_v2.txt

音声のダイナミックレンジを調べる drmeter

$
0
0

14以上ならレンジがとても広く、8 以上 14 未満 までは普通で、8 未満はレンジが狭いとされている。

基本コマンド

ffmpeg -i input -vn -af drmeter=length=3 -f null -

表示ログの例

[Parsed_drmeter_0 @ 0000000000486580] Channel 1: DR: 12.6
[Parsed_drmeter_0 @ 0000000000486580] Channel 2: DR: 12.9
[Parsed_drmeter_0 @ 0000000000486580] Overall DR: 12.7

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

オプション

length[double]
何秒単位で解析するかの設定
既定値:3
範囲:0.01 から 10 まで

Viewing all 416 articles
Browse latest View live