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

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

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

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

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

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

Continue reading “ffplay で時間とフレーム数を表示する”

2018年2月のニコ生統計

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

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

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

新しい映像の品質評価 libvmaf

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

2018年8月11日、v1.3.9 対応のコミットが追加された。これに伴いマルチスレッド対応で高速になり、v1.3.4 を使う必要がなくなった。

Linux 向けのバイナリは以下から保存できる。
FFmpeg Static Builds

Windows 向けのバイナリの配布を始めた。

2つの映像の画質評価をする psnr
2つの映像の画質評価をする ssim
新しい映像の動きの評価 vmafmotion
vmaf スコアをインターレース解除とデノイズのフィルタを使って調べてみた

Continue reading “新しい映像の品質評価 libvmaf”

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

今週の放送分から 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 2005+audio-2-en__Main_ -o "output.mp4"

ffmpeg 単体のコマンド例
ffmpeg -i "master.m3u8 の URL" -map 0:5 -map 0:4 -c copy "output.mp4"
ffmpeg -i "master.m3u8 の URL" -map p:2 -c copy "output.mp4"

追記 2018年6月13日
放送局のサイトよりも GYAO! のほうがビットレートが高く、手軽だった。

自炊マンガの色補正

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

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

Continue reading “自炊マンガの色補正”

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

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日

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

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

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

streamlink の使い方

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

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

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

日本から関係ありそうなのは、abema.tv, live.bilibili.com, mixer.com, nhk.or.jp/nhkworld, sketch.pixiv.net, twitch, youtube。

インストール:Installation — Streamlink documentation
配布先:Releases · streamlink/streamlink
更新履歴:Changelog — Streamlink documentation

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

ナイトリー(win):streamlink/streamlink-nightly

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

Continue reading “streamlink の使い方”

ffmpeg で複数出力

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"

Continue reading “ffmpeg で複数出力”