公式サイト
http://ffmpeg.org/
エンコード、ストリーミング配信を高画質高音質で行えるffmpeg。
OSに拘らず対応コーデックが多い。
対応コーデックが多く、多彩なオプションを使用可能。
コマンドラインから使用することができる。
ffmpegならこちらへ 5
https://egg.5ch.net/test/read.cgi/software/1597315425/
探検
ffmpegならこちらへ 6
■ このスレッドは過去ログ倉庫に格納されています
2021/08/15(日) 14:51:05.12ID:5lnIQtJ80
2021/11/19(金) 07:15:26.20ID:KpKh4wUM0
>>175
"ffmpeg batch encoding2.bat" みたいな感じで半角スペースが含まれるときは " で挟むといいよ
バッチファイルに渡したファイルやパス名にスペースがあって困るって意味なら "%~1" みたいにすると良い
"ffmpeg batch encoding2.bat" みたいな感じで半角スペースが含まれるときは " で挟むといいよ
バッチファイルに渡したファイルやパス名にスペースがあって困るって意味なら "%~1" みたいにすると良い
2021/11/19(金) 07:19:34.31ID:eoHVhJQL0
>>176
いや、検索してでてきたバッチファイルなんだけど、変数が入り組んでてよくわからないのよね
いや、検索してでてきたバッチファイルなんだけど、変数が入り組んでてよくわからないのよね
2021/11/19(金) 07:55:02.41ID:qbRJo2XK0
>>177
ならまずそのバッチファイルの中身を吊るさなきゃだな
ならまずそのバッチファイルの中身を吊るさなきゃだな
2021/11/19(金) 08:17:29.03ID:KpKh4wUM0
>>177
ググったらブログ記事が出てきたけどその人のTwitterに質問したほうがいいんじゃねえの
ぶっちゃけムダに長くて冗長だから別の記事参考にしたほうが良い気がする
昔拾ったこれとか参考になるんじゃない?知らんけど
https://www.mediafire.com/file/qk52ll80lry0cvd/J22MP4toPSPChotto_0.3v2.zip/file
ググったらブログ記事が出てきたけどその人のTwitterに質問したほうがいいんじゃねえの
ぶっちゃけムダに長くて冗長だから別の記事参考にしたほうが良い気がする
昔拾ったこれとか参考になるんじゃない?知らんけど
https://www.mediafire.com/file/qk52ll80lry0cvd/J22MP4toPSPChotto_0.3v2.zip/file
2021/11/19(金) 10:56:41.02ID:oroBNaJO0
ブログ見たけど、コーディックが気になって仕方がない
2021/11/19(金) 11:37:50.43ID:us/4Fc7r0
batファイルを使ってる限り煩わしいファイル名の記号の処理に付き合わされるし難しい処理をするのにも向いてないから他の方法考えたほうがいいと思うよ
2021/11/19(金) 12:15:03.79ID:5yq5djs20
ffmpeg -i %INPUT_FOLDER%\%%i %OUTPUT_OPTIONS% %OUTPUT_FOLDER%%%x_mini_!date:~0,4!!date:~5,2!!date:~8,2!!tmptime:~0,2!!tmptime:~3,2!!tmptime:~6,2!.%EXTENSION%
の%%iとか%%xを""で囲うのではいかんの?
(batファイルよく知らない)
の%%iとか%%xを""で囲うのではいかんの?
(batファイルよく知らない)
2021/11/19(金) 12:38:53.84ID:ll7jZVSU0
エクスプローラでパスのコピーをすればいい
2021/11/19(金) 13:27:45.61ID:fbMa8e810
いまだにbat使ってる奴は死刑にする法律作って欲しい
2021/11/19(金) 14:01:12.37ID:dnZHaVf10
ffmpegとbatは切っても切れないと思うが
2021/11/19(金) 14:34:50.16ID:2RKlg80g0
切れてるよ
2021/11/19(金) 15:22:35.79ID:/jDjqamX0
拾ったバッチで済ますくらいなら
適当なフロントエンドでええんじゃね
適当なフロントエンドでええんじゃね
2021/11/19(金) 15:51:49.34ID:2RKlg80g0
あらゆる動画を自分好みに変換するスクリプトを書いてある
189名無しさん@お腹いっぱい。
2021/11/19(金) 16:15:12.62ID:ABRKG2v00 サッカーワールドカップが野外露出動画に!
2021/11/19(金) 17:35:25.34ID:0WEeKdmb0
自分はpythonで書いてるよ
no-consoleモードでエラー時以外は何も表示させないこともできるし
WSHでもできると思うけど、あんまり詳しくないので
no-consoleモードでエラー時以外は何も表示させないこともできるし
WSHでもできると思うけど、あんまり詳しくないので
2021/11/19(金) 18:03:14.01ID:XrgkAxtH0
何なら今後はWindowsでもcmdじゃなくてPowerShellに一本化されるからな
PowerShell (.ps1)なら cmd (.BAT)の処理は全部できるしディレクトリパス・ファイルパスの結合やら末尾スラッシュやら引用符の正規化もお手軽よ
PowerShell (.ps1)なら cmd (.BAT)の処理は全部できるしディレクトリパス・ファイルパスの結合やら末尾スラッシュやら引用符の正規化もお手軽よ
2021/11/19(金) 18:14:37.77ID:2RKlg80g0
でも設定しないと使えないんでしょう?
2021/11/19(金) 18:16:51.12ID:PgmBMbQk0
PowerShellに移行して脱バッチファイル・脱コマンドプロンプトしたいと思いつつダラダラとそのままになってるわ…
ログインしたり云々みたいなのはPython併用でって感じだけど
ログインしたり云々みたいなのはPython併用でって感じだけど
2021/11/19(金) 18:26:22.13ID:2RKlg80g0
10年後も余裕でCLIは使ってると思うけどな
pythonで書かれたCLI指向のツールがあって、
pythonから呼べなくもないけど、CLIで使った方が楽っていう
例えば、リトライ回数をオプションでなら指定できるけど、
メソッド呼ぶなら自分でリトライしろになる
pythonで書かれたCLI指向のツールがあって、
pythonから呼べなくもないけど、CLIで使った方が楽っていう
例えば、リトライ回数をオプションでなら指定できるけど、
メソッド呼ぶなら自分でリトライしろになる
2021/11/19(金) 18:54:14.61ID:+WPQ+0tB0
高機能なコマンドプロンプトのつもりでPowerShellに移行しようとしたけどできてない
やりたいことを調べるたびに.NetやC#の解説サイトやMSDNをいっりきたりして何やってるんだ俺ってなる
やりたいことを調べるたびに.NetやC#の解説サイトやMSDNをいっりきたりして何やってるんだ俺ってなる
2021/11/19(金) 19:08:55.09ID:+Z9V55nC0
PowerShellって前試した時パイプ入出力を利用したエンコードが出来なかった気がするけどやり方あるの?
2021/11/19(金) 19:22:47.75ID:75VUKbWq0
コマンドプロンプトとして使うぶんには.NetもC#も関係ないしパイプも単純に使うだけなら問題ない
なんかめんどくさいことやろうとしてるなら知らんけど
なんかめんどくさいことやろうとしてるなら知らんけど
2021/11/19(金) 19:37:11.93ID:U26qPORh0
PowerShell って俺の環境では深刻に起動が遅い。
単にマシンパワーが足りんだけかもしれんが、
少なくとも俺の環境では普段使いしづらい。
単にマシンパワーが足りんだけかもしれんが、
少なくとも俺の環境では普段使いしづらい。
2021/11/19(金) 19:42:08.81ID:qpkcDcD60
windowsのコマンドは滅多に使わないし独特で調べるのがめんどい…
ffmpeg一発ならpowershellで何も問題ないけど複雑なことをしたいときはvm上でやってる
ffmpeg一発ならpowershellで何も問題ないけど複雑なことをしたいときはvm上でやってる
2021/11/19(金) 20:24:50.94ID:oroBNaJO0
ウチもpythonでスクリプト書いとるわ
増築しては書き直しを続けて400行超えになってもうた
とりあえず100行は減らしたい
増築しては書き直しを続けて400行超えになってもうた
とりあえず100行は減らしたい
2021/11/20(土) 00:44:20.00ID:ruWSJzRB0
ワイは makefile から呼ぶことが多いな。
2021/11/20(土) 01:08:29.87ID:7okX8Z8A0
シェルスクリプトが一番楽にできそうだけどね
シングルクォーテーションが使えると楽に使えるオプションが多いいし
シングルクォーテーションが使えると楽に使えるオプションが多いいし
2021/11/21(日) 12:49:55.62ID:NP3EqqdL0
>> 196
スクリプトファイル(.ps1)や関数がパイプ処理できるようになるにはこれだけの要素が必要
param (
[Parameter(ValueFromPipeline=$True)]
[string[]] $Path #パイプラインを受け取る変数
)
begin { #最初の一回だけ }
process {#パイプラインの要素ごと }
end { #最後に一回だけ }
※結果を次のパイプラインに送るには Write-Output などを使ってオブジェクトを出力する必要がある
スクリプトファイル(.ps1)や関数がパイプ処理できるようになるにはこれだけの要素が必要
param (
[Parameter(ValueFromPipeline=$True)]
[string[]] $Path #パイプラインを受け取る変数
)
begin { #最初の一回だけ }
process {#パイプラインの要素ごと }
end { #最後に一回だけ }
※結果を次のパイプラインに送るには Write-Output などを使ってオブジェクトを出力する必要がある
2021/11/21(日) 12:54:32.13ID:Mc6rZrz30
2021/11/21(日) 12:56:36.89ID:Mc6rZrz30
>203
<a href="../test/read.cgi/software/1629006665/203" rel="noopener noreferrer" target="_blank">&gt;&gt;203</a>
&gt;&gt; 203
<a href="../test/read.cgi/software/1629006665/203" rel="noopener noreferrer" target="_blank">&gt;&gt;203</a>
&gt;&gt; 203
2021/11/21(日) 13:40:52.58ID:NP3EqqdL0
2021/12/01(水) 19:05:57.20ID:e4XZKATS0
メモリ増やしたら速くなるかなーと思って16→32に増やしたけれど意味なかった(´・ω・`)チッ
208名無しさん@お腹いっぱい。
2021/12/02(木) 07:36:57.40ID:3tuT83WL0 CPU使用率が100%に張り付いてたらCPU交換以外に効果はない
2021/12/02(木) 08:56:44.57ID:Mpq8QQlV0
だよねやっぱりCPUだよねぇ・・・i9 12900K試してみたいが高いよヽ(`Д´)ノ
今はおんぽろXEON E5-2660を2個で回してるけど、i9がどれくらい早いのか気になるな
今はおんぽろXEON E5-2660を2個で回してるけど、i9がどれくらい早いのか気になるな
2021/12/02(木) 09:51:09.23ID:kp/uZKk30
いやCPU交換以外にも手はあるだろ
2021/12/02(木) 10:22:01.00ID:CBxv7HuS0
…まさか…クロックアップ…
2021/12/02(木) 10:55:12.83ID:U1z/ZHhB0
クロックアップできないお前など敵ではない
2021/12/02(木) 11:05:42.40ID:cVipkT2w0
じゃあ並列処理で全コア全GPUも使う
2021/12/02(木) 11:14:49.49ID:Mpq8QQlV0
オーバークロックは無理ぽ
誰かi912900K買って試してくれたまえ
誰かi912900K買って試してくれたまえ
2021/12/02(木) 15:35:39.21ID:mmpB7WQF0
エンコする場所をRAMディスクにして少しでも入出力の速度を稼ぐとかダメ?
2021/12/02(木) 15:43:25.01ID:J0LkGtiH0
ストレージにボトルネックがないのにRAMに置いてもほぼ変わらんよ
2021/12/02(木) 16:45:14.96ID:kp/uZKk30
何が遅い原因かどころか何をやったかかもわからないのに試してくれとは…
2021/12/02(木) 17:33:46.16ID:Mpq8QQlV0
あーいやすまない、たぶん>>208の言う通りCPUの限界だと思うんだよね、新型i9を使った変換速度を見てみたくてさ・・・
現在の環境がどれくらい遅いのか比較になるものあればなー
現在の環境がどれくらい遅いのか比較になるものあればなー
2021/12/02(木) 17:39:11.74ID:Kd8l+yiv0
>>218
新CPUが発売されたら大体x264とx265のエンコード速度ベンチやってるからそういう記事見たらわかると思う
あとこのスレとか
【x264/x265】実用エンコベンチ Part6
https://egg.5ch.net/test/read.cgi/jisaku/1507728392/
新CPUが発売されたら大体x264とx265のエンコード速度ベンチやってるからそういう記事見たらわかると思う
あとこのスレとか
【x264/x265】実用エンコベンチ Part6
https://egg.5ch.net/test/read.cgi/jisaku/1507728392/
2021/12/02(木) 17:51:38.60ID:Mpq8QQlV0
>>219
Σ!?そんなスレが・・・ありがとう逝ってくる
Σ!?そんなスレが・・・ありがとう逝ってくる
2021/12/03(金) 10:29:44.82ID:bMN/fZ6W0
リサイズが入るとCPUがやるから一気に遅くなるんだ
GPUにも機能はあるけどバイナリ配布できないのでビルドしないといけない
いつかやろうと思って放置してあるけどそろそろやろう
GPUにも機能はあるけどバイナリ配布できないのでビルドしないといけない
いつかやろうと思って放置してあるけどそろそろやろう
2021/12/03(金) 12:43:30.46ID:BhzNd//L0
ffmpegて8スレッドまでなの?
最新のi9だから24スレッド使えるはずなんだけど
-threadsで24を指定しても8スレッドしか使わない
最新のi9だから24スレッド使えるはずなんだけど
-threadsで24を指定しても8スレッドしか使わない
2021/12/03(金) 12:47:23.83ID:bMN/fZ6W0
コアは使ってるなら変わらないのでは
2021/12/03(金) 14:39:10.55ID:abV0W3bW0
旧石器時代のコンピュータじゃあるまいし1コアしかなくても24スレッド立てられる
ffmpegはコーデックで大幅に挙動変わるし疑問があるならオプション全部晒さないと始まらない
ffmpegはコーデックで大幅に挙動変わるし疑問があるならオプション全部晒さないと始まらない
2021/12/03(金) 14:54:51.70ID:bMN/fZ6W0
IOで詰まるせいで効率が落ちるならスレッドを増やすと待ち時間が減って速くなる
計算量が多い場合は、スレッドを増やすと逆にオーバーヘッドの分だけ遅くなる
CPUの負荷が100%で張り付いてるような時はスレッドは減らした方がいい
計算量が多い場合は、スレッドを増やすと逆にオーバーヘッドの分だけ遅くなる
CPUの負荷が100%で張り付いてるような時はスレッドは減らした方がいい
2021/12/03(金) 17:08:34.46ID:BhzNd//L0
ピントハズレな奴らばっかりだな
OSのスレッドの話じゃないし
タスクマネージャーの論理プロセッサの話だとわからないかな
OSのスレッドの話じゃないし
タスクマネージャーの論理プロセッサの話だとわからないかな
2021/12/03(金) 17:32:36.02ID:smnAXjtS0
>ffmpegはコーデックで大幅に挙動変わるし疑問があるならオプション全部晒さないと始まらない
これがすべてよ
これがすべてよ
2021/12/03(金) 18:26:25.19ID:2pmPxcuP0
コーデックなんだか知らんけどx264, x265当たりは12スレッドくらいしか使わなかった気が。10980XEでも俺環では3並列エンコしないと100%行かなかった
229名無しさん@お腹いっぱい。
2021/12/03(金) 22:11:53.61ID:PlxWw4Wb0 タスクマネージャー?
あぁ、ドザか
あぁ、ドザか
2021/12/06(月) 19:59:39.57ID:4OISnXcL0
mp4のメタデータ全部削除するにはどうしたらいいの?
2021/12/06(月) 20:23:20.24ID:PO9BuiEN0
>>230
-map_metadata -1
-map_metadata -1
232名無しさん@お腹いっぱい。
2021/12/06(月) 20:23:32.04ID:YNdiUOHo0 >>230
-map_metadata -1
-map_metadata -1
2021/12/07(火) 21:46:12.97ID:y8vueCng0
>>231-232
できたサンクス
できたサンクス
2021/12/07(火) 21:55:55.10ID:DtIIE/Gz0
明日は仕事サボってビルドしよう
2021/12/08(水) 14:42:19.03ID:Hsbe7fL30
やっぱり面倒だー
git cloneした所まで
そのうちwin10にするんだから、続きはその後
git cloneした所まで
そのうちwin10にするんだから、続きはその後
2021/12/16(木) 05:16:58.54ID:v5QIxPft0
.m3u8
.ts
をffmpegで結合する時、
30000/1001のファイルなのに、29970/1000と認識されてしまい何秒かに一回カクっと来る動画になってしまうものがあって悩んでおります
これを、できれば再エンコードなしで、30000/1001の正常な動画で出力したいのですが、
何か手はありませんでしょうか?
-r 30000/1001で再エンコードありだと、かなり画質の落ちた30000/1001の滑らかな動画が出力されました
.ts
をffmpegで結合する時、
30000/1001のファイルなのに、29970/1000と認識されてしまい何秒かに一回カクっと来る動画になってしまうものがあって悩んでおります
これを、できれば再エンコードなしで、30000/1001の正常な動画で出力したいのですが、
何か手はありませんでしょうか?
-r 30000/1001で再エンコードありだと、かなり画質の落ちた30000/1001の滑らかな動画が出力されました
2021/12/16(木) 05:18:28.36ID:v5QIxPft0
↑.mkvで出力しております。
2021/12/16(木) 05:44:22.10ID:Zrf9rw940
mkvなら手っ取り早くmkvmergeを使ったほうがいいよ
確実に調整できるから
確実に調整できるから
2021/12/16(木) 15:31:06.55ID:GzLouStF0
inputオプションに指定してもだめなの?
2021/12/17(金) 00:30:41.84ID:bjROaHem0
>>238
ありがとうございました
MKVToolNixの公式サイトがどこか分からず
解説サイトもなく偽物をインストールしたらどうしようと不安でしたが
カクカクが直りました
間引かれたフレームなかったみたいで少し安心
MediaInfo
フレームレート: 29.970 (30000/1001) fps
オリジナル: 29.970 (29970/1000) fps
再エンコードなしでも十数分かかるので、
ffmpegだけで完結できたら最高なのですが…
ブラウザでストリーミング再生した時はカクカクじゃないので、
ffmpegが間違って認識してると思います…
>>239
それが出来るのが私としても理想なので
-allowed_extensions ALL -r 30000/1001 -i input.m3u8 -c copy output.mkv
など、いくつか試してみたのですが、
エラーも出ずにできたファイルは29970/1000ばかりで…
;;
ありがとうございました
MKVToolNixの公式サイトがどこか分からず
解説サイトもなく偽物をインストールしたらどうしようと不安でしたが
カクカクが直りました
間引かれたフレームなかったみたいで少し安心
MediaInfo
フレームレート: 29.970 (30000/1001) fps
オリジナル: 29.970 (29970/1000) fps
再エンコードなしでも十数分かかるので、
ffmpegだけで完結できたら最高なのですが…
ブラウザでストリーミング再生した時はカクカクじゃないので、
ffmpegが間違って認識してると思います…
>>239
それが出来るのが私としても理想なので
-allowed_extensions ALL -r 30000/1001 -i input.m3u8 -c copy output.mkv
など、いくつか試してみたのですが、
エラーも出ずにできたファイルは29970/1000ばかりで…
;;
2021/12/17(金) 13:33:58.19ID:3XFEby/G0
分数形式じゃなく -r ntsc にするとか
出力ファイルをmp4にしてみるとか
どうかな
出力ファイルをmp4にしてみるとか
どうかな
2021/12/17(金) 13:56:03.06ID:3hALqQDQ0
サンプルは無いのか
2021/12/17(金) 15:54:35.34ID:v03xvemS0
ffmpegでコンテナレベルでのフレームレート変更はうまくいかないよ
何が原因かはわからないけど、とにかく無理だった
諦めてmkvmergeを使って、別コンテナ形式に入れるときにffmpegを用いたくらい
何が原因かはわからないけど、とにかく無理だった
諦めてmkvmergeを使って、別コンテナ形式に入れるときにffmpegを用いたくらい
2021/12/17(金) 16:39:43.87ID:3hALqQDQ0
別のツールならできるし、それらしい機能もあるなら、
やり方が間違ってるかバグってるかのどちらかだろう
追求する価値はある
やり方が間違ってるかバグってるかのどちらかだろう
追求する価値はある
2021/12/17(金) 16:48:45.46ID:v03xvemS0
バグってるって言えば、mp4コンテナでaac扱うと
vbrフラグが承継されない(variable→constantになってしまう)のはなんとかならんのかねぇ
別のツール(drax)で扱うとフラグが復活するので、データ自体は変わっていないみたいだし
再生に差し支えるわけじゃなさそうだが、気持ちのいいものではないな
vbrフラグが承継されない(variable→constantになってしまう)のはなんとかならんのかねぇ
別のツール(drax)で扱うとフラグが復活するので、データ自体は変わっていないみたいだし
再生に差し支えるわけじゃなさそうだが、気持ちのいいものではないな
2021/12/17(金) 17:20:34.70ID:Ms0aZKxP0
試したことないけどこれで出来ない?
再エンコードせずに FPS を変更する
https://nico-lab.net/change_fps_without_re-encode_with_ffmpeg/
再エンコードせずに FPS を変更する
https://nico-lab.net/change_fps_without_re-encode_with_ffmpeg/
2021/12/18(土) 03:37:54.85ID:QvBR032w0
2021/12/18(土) 10:26:31.51ID:Ez49sF620
mp4コンテナの再エンコード無しのFPSの変更はこんな感じで出来たけどmkvだと何故か上手くいかないな
ffmpeg -i input.mp4 -bsf:v setts=ts=N/(30000/1001)/TB -c copy output.mp4
ffmpeg -i input.mp4 -bsf:v setts=ts=N/(30000/1001)/TB -c copy output.mp4
2021/12/18(土) 10:35:44.90ID:Ez49sF620
settsの使い方がイマイチわかってないので提示例が間違ってるかも
2021/12/20(月) 13:40:02.27ID:PdZ9beel0
ssimでmkvを入力するとやたらめった低くなるのって既出?
ソース(origin.m2ts、BD、H.264)とソースを比較
ffmpeg -i origin.m2ts -i origin.m2ts -an -filter_complex ssim -f null -
当然結果は1.0(inf)
ソースをmp4にmuxしてタイムスタンプを合わせて比較
ffmpeg -i ref.m2ts -an -c:v copy copy.mp4
ffmpeg -i copy.mp4 -i origin.m2ts -an -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null -
copyなので予想通り結果は1.0(inf)
ソースをmkvにmuxしてタイムスタンプを合わせて比較
ffmpeg -i origin.m2ts -an -c:v copy copy.mkv
ffmpeg -i copy.mkv -i origin.m2ts -an -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null -
結果は
SSIM Y:0.922225 (11.091597) U:0.985489 (18.383000) V:0.989469 (19.775481) All:0.943976 (12.516286)
mkvmergeでm2tsをmkvにmuxしても全く同じ数値
ソース(origin.m2ts、BD、H.264)とソースを比較
ffmpeg -i origin.m2ts -i origin.m2ts -an -filter_complex ssim -f null -
当然結果は1.0(inf)
ソースをmp4にmuxしてタイムスタンプを合わせて比較
ffmpeg -i ref.m2ts -an -c:v copy copy.mp4
ffmpeg -i copy.mp4 -i origin.m2ts -an -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null -
copyなので予想通り結果は1.0(inf)
ソースをmkvにmuxしてタイムスタンプを合わせて比較
ffmpeg -i origin.m2ts -an -c:v copy copy.mkv
ffmpeg -i copy.mkv -i origin.m2ts -an -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null -
結果は
SSIM Y:0.922225 (11.091597) U:0.985489 (18.383000) V:0.989469 (19.775481) All:0.943976 (12.516286)
mkvmergeでm2tsをmkvにmuxしても全く同じ数値
2021/12/20(月) 14:19:14.31ID:PdZ9beel0
ソースをlibx264でエンコード・エンコード時にssim計算・mp4出力・ffmpegで再び計算
ffmpeg -i origin.m2ts -an -c:v libx264 -x264-params ssim=1 x264.mp4
↓
x264のSSIM
SSIM Mean Y:0.9828054 (17.646db)
ffmpegのSSIM
SSIM Y:0.983138 (17.731021) U:0.992124 (21.037030) V:0.993634 (21.961672) All:0.986385 (18.659951)
ソースを.mp4にmux(copy.mp4)した後にlibx264でエンコード・mp4出力
↓
x264のSSIM
SSIM Mean Y:0.9828054 (17.646db)
ffmpegのSSIM(copy.mp4)
SSIM Y:0.983138 (17.731021) U:0.992124 (21.037030) V:0.993634 (21.961672) All:0.986385 (18.659951)
origin.m2tと比較しても同じ
ソースをlibx264でエンコード・mkv出力
↓
x264のSSIM
SSIM Mean Y:0.9828054 (17.646db)
ffmpegのSSIM
SSIM Y:0.915586 (10.735878) U:0.982084 (17.467682) V:0.986489 (18.693172) All:0.938487 (12.110299)
ffmpegで出力したx264.mp4をmkvmergeでmkvにmuxしても同じ値
copy.mp4をlibx264でエンコードしてmkvで出力しても同じ値
ffmpeg -i origin.m2ts -an -c:v libx264 -x264-params ssim=1 x264.mp4
↓
x264のSSIM
SSIM Mean Y:0.9828054 (17.646db)
ffmpegのSSIM
SSIM Y:0.983138 (17.731021) U:0.992124 (21.037030) V:0.993634 (21.961672) All:0.986385 (18.659951)
ソースを.mp4にmux(copy.mp4)した後にlibx264でエンコード・mp4出力
↓
x264のSSIM
SSIM Mean Y:0.9828054 (17.646db)
ffmpegのSSIM(copy.mp4)
SSIM Y:0.983138 (17.731021) U:0.992124 (21.037030) V:0.993634 (21.961672) All:0.986385 (18.659951)
origin.m2tと比較しても同じ
ソースをlibx264でエンコード・mkv出力
↓
x264のSSIM
SSIM Mean Y:0.9828054 (17.646db)
ffmpegのSSIM
SSIM Y:0.915586 (10.735878) U:0.982084 (17.467682) V:0.986489 (18.693172) All:0.938487 (12.110299)
ffmpegで出力したx264.mp4をmkvmergeでmkvにmuxしても同じ値
copy.mp4をlibx264でエンコードしてmkvで出力しても同じ値
252名無しさん@お腹いっぱい。
2021/12/20(月) 14:29:03.81ID:PdZ9beel0 ソースをmkvにmux(copy.mkv)した後にmp4にmux
ffmpeg -i copy.mkv -c:v copy copy-copy.mp4
↓
copy.mkvとcopy-copy.mp4のSSIMが1.0(inf)になる
copy-copy.mp4とorigin.m2ts(もしくはcopy.mp4)のSSIM
SSIM Y:0.922225 (11.091597) U:0.985489 (18.383000) V:0.989469 (19.775481) All:0.943976 (12.516286)
copy-copy.mp4をlibx264でエンコードしてmp4出力
↓
x264のSSIM
SSIM Mean Y:0.9828054 (17.646db)
ffmpegのSSIM
SSIM Y:0.983138 (17.731021) U:0.992124 (21.037030) V:0.993634 (21.961672) All:0.986385 (18.659951)
copy-copy.mp4をlibx264でエンコードしてmkv出力
↓
x264のSSIM
SSIM Mean Y:0.9828054 (17.646db)
ffmpegのSSIM
SSIM Y:0.915586 (10.735878) U:0.982084 (17.467682) V:0.986489 (18.693172) All:0.938487 (12.110299)
ffmpeg -i copy.mkv -c:v copy copy-copy.mp4
↓
copy.mkvとcopy-copy.mp4のSSIMが1.0(inf)になる
copy-copy.mp4とorigin.m2ts(もしくはcopy.mp4)のSSIM
SSIM Y:0.922225 (11.091597) U:0.985489 (18.383000) V:0.989469 (19.775481) All:0.943976 (12.516286)
copy-copy.mp4をlibx264でエンコードしてmp4出力
↓
x264のSSIM
SSIM Mean Y:0.9828054 (17.646db)
ffmpegのSSIM
SSIM Y:0.983138 (17.731021) U:0.992124 (21.037030) V:0.993634 (21.961672) All:0.986385 (18.659951)
copy-copy.mp4をlibx264でエンコードしてmkv出力
↓
x264のSSIM
SSIM Mean Y:0.9828054 (17.646db)
ffmpegのSSIM
SSIM Y:0.915586 (10.735878) U:0.982084 (17.467682) V:0.986489 (18.693172) All:0.938487 (12.110299)
2021/12/20(月) 14:56:33.82ID:PdZ9beel0
copy.mkvをlibx264でエンコードしてmp4出力
↓
SSIMは他のlibx264+mp4出力時と同じ
copy.mkvをlibx264でエンコードしてmkv出力
↓
SSIMは他のlibx264+mkv出力時と同じ
libx264+mkv出力とcopy.mkvを比較
↓
SSIMはlibx264+mp4出力とorigin.m2ts(copy.m2ts)と同じ
↓
SSIMは他のlibx264+mp4出力時と同じ
copy.mkvをlibx264でエンコードしてmkv出力
↓
SSIMは他のlibx264+mkv出力時と同じ
libx264+mkv出力とcopy.mkvを比較
↓
SSIMはlibx264+mp4出力とorigin.m2ts(copy.m2ts)と同じ
2021/12/20(月) 15:05:00.02ID:PdZ9beel0
長すぎて>>250-253を誰も読んでないだろうからまとめると
・.mkvコンテナをmain、mp4やm2tsをreferenceにしてSSIMを計算すると値が悪くなる
・mkvmergeで作成したmkvでも同じく悪くなる/エンコーダーが計算してるSSIMは全く同じ/
「copyしたmkvとエンコードしたmkv」で比較した際は「ソースとエンコードしたmp4」で比較した時と同じSSIMを返す/
って点から中身に問題はなくてffmpegのフィルタがバグっている?
・mkvはガッツリ下がるがmp4でもエンコーダーが計算した値より1dbほど良くなる←?
・m2ts→mkv→mp4にcopyで変換するとmp4でもmkvのSSIMになる←???
何がどうなってるかよく分からんが一応メモ残しとくわ…
・.mkvコンテナをmain、mp4やm2tsをreferenceにしてSSIMを計算すると値が悪くなる
・mkvmergeで作成したmkvでも同じく悪くなる/エンコーダーが計算してるSSIMは全く同じ/
「copyしたmkvとエンコードしたmkv」で比較した際は「ソースとエンコードしたmp4」で比較した時と同じSSIMを返す/
って点から中身に問題はなくてffmpegのフィルタがバグっている?
・mkvはガッツリ下がるがmp4でもエンコーダーが計算した値より1dbほど良くなる←?
・m2ts→mkv→mp4にcopyで変換するとmp4でもmkvのSSIMになる←???
何がどうなってるかよく分からんが一応メモ残しとくわ…
2021/12/20(月) 15:24:36.47ID:PdZ9beel0
肝心な事忘れてた
結局MKVコンテナとそれ以外のコンテナでSSIMを比較するなら
AviSynthでDGDec系かL-SMASH使って読むのが手っ取り早かった
後者はffmpeg使ってデコードしてffmpegに渡すって絵面だけ見たらバカらしい事になるけど…
結局MKVコンテナとそれ以外のコンテナでSSIMを比較するなら
AviSynthでDGDec系かL-SMASH使って読むのが手っ取り早かった
後者はffmpeg使ってデコードしてffmpegに渡すって絵面だけ見たらバカらしい事になるけど…
2021/12/20(月) 15:58:38.43ID:vYhtdp5y0
ssimは気にしたら負け
2021/12/20(月) 18:06:56.51ID:wX2hV7Wj0
違うフレームを比較してるんじゃね
MKVコンテナに入れ替えたときタイムベースの精度が落ちたか固定フレームレートになるなりしたか
MKVコンテナに入れ替えたときタイムベースの精度が落ちたか固定フレームレートになるなりしたか
2021/12/20(月) 19:06:02.14ID:27JxIqM20
こうした場合は?
ffmpeg -r 30000/1001 -i copy.mkv -r 30000/1001 -i origin.m2ts -an -filter_complex ssim -f null -
ffmpeg -r 30000/1001 -i copy.mkv -r 30000/1001 -i origin.m2ts -an -filter_complex ssim -f null -
2021/12/20(月) 19:58:59.58ID:PdZ9beel0
>>258
それだとmkvでも1.0(inf)になったわ
>>257
確かにVFRになってた…というかBDのm2tsってCFRじゃないんだな?(MediaInfo見る限りは固定とも可変とも書いてない)
でmp4にcopyした方は
Frame rate mode : Variable
Frame rate : 23.976 (24000/1001) FPS
Minimum frame rate : 23.974 FPS
Maximum frame rate : 23.981 FPS
になってた
これだけならmkvに入れるとフレームレートがおかしくなるからやめましょうねチャンチャンなんだけど
じゃあ一旦mkvにして失われたフレームレートやタイムベースがAviSynth嚙ましたりx264にエンコードして.mp4出力すると復活するのは何なんだろう…わっかんね…
それだとmkvでも1.0(inf)になったわ
>>257
確かにVFRになってた…というかBDのm2tsってCFRじゃないんだな?(MediaInfo見る限りは固定とも可変とも書いてない)
でmp4にcopyした方は
Frame rate mode : Variable
Frame rate : 23.976 (24000/1001) FPS
Minimum frame rate : 23.974 FPS
Maximum frame rate : 23.981 FPS
になってた
これだけならmkvに入れるとフレームレートがおかしくなるからやめましょうねチャンチャンなんだけど
じゃあ一旦mkvにして失われたフレームレートやタイムベースがAviSynth嚙ましたりx264にエンコードして.mp4出力すると復活するのは何なんだろう…わっかんね…
2021/12/20(月) 20:25:45.59ID:a4C3cgdF0
>>259
いつもおまじない程度につけてたけどやはり効果あるようだな
いつもおまじない程度につけてたけどやはり効果あるようだな
2021/12/20(月) 21:00:08.29ID:sBSORw380
mkvはそもそもフレームレートって概念ないからssimフィルタ内かその前かでフレームごとのタイムスタンプがぐっちゃになってんじゃないか
2021/12/20(月) 21:00:30.22ID:iBrXpsPN0
もしかしてtracに報告している人?
2021/12/20(月) 22:01:49.48ID:/kRmXeFb0
>>259
確かにmkvに入れるときタイムベースとPTSが書き換えられてるなら同じタイムスタンプ(=タイムコード)にはならないぞ
タイムベースの分解能の差から生まれる違いはこう生まれる
1001/30000秒*1tick=33.366666666666...
1/1000秒*33tick=33
フレームレートなんてものは無くて、ただあるのはタイムベースとPTSなんだともいえる
失われたフレームレートやタイムベースが復活するの意味がよくわからないが、また24fpsになるってことなら
MKVコンテナのdefault durationかコーデック(H.264のビットストリーム)のフレームレートを読んでるんじゃないか、知らんけど
フレームレート情報の格納場所はコンテナだけじゃないし
確かにmkvに入れるときタイムベースとPTSが書き換えられてるなら同じタイムスタンプ(=タイムコード)にはならないぞ
タイムベースの分解能の差から生まれる違いはこう生まれる
1001/30000秒*1tick=33.366666666666...
1/1000秒*33tick=33
フレームレートなんてものは無くて、ただあるのはタイムベースとPTSなんだともいえる
失われたフレームレートやタイムベースが復活するの意味がよくわからないが、また24fpsになるってことなら
MKVコンテナのdefault durationかコーデック(H.264のビットストリーム)のフレームレートを読んでるんじゃないか、知らんけど
フレームレート情報の格納場所はコンテナだけじゃないし
2021/12/21(火) 05:52:02.53ID:I3B7ENTH0
コンテナによってタイムスタンプが違うのは前提で>>250が使ってる
-lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];
ってのがそれを仮想的に揃えるコマンドなんじゃないの?ドキュメントにも別コンテナで比較する時に使えって書いてあるし
-lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];
ってのがそれを仮想的に揃えるコマンドなんじゃないの?ドキュメントにも別コンテナで比較する時に使えって書いてあるし
2021/12/22(水) 19:06:04.98ID:4zORlfSK0
コンテナが違う場合は
settb=AVTB
じゃなくて
settb=1/AVTB
にしないとダメらしい
-lavfi [0:v]settb=1/AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=1/AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim
でmkvと他コンテナで比べてもジッター無しで測定できるってさ
settb=AVTB
じゃなくて
settb=1/AVTB
にしないとダメらしい
-lavfi [0:v]settb=1/AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=1/AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim
でmkvと他コンテナで比べてもジッター無しで測定できるってさ
2021/12/22(水) 22:41:09.31ID:Pq+tfD710
確かにタイムベースが逆数で扱われる場面があったな、理由はよく知らないけど
Time Baseって言葉に共通規格みたいな定義無いのかな
Time Baseって言葉に共通規格みたいな定義無いのかな
2021/12/24(金) 00:43:43.53ID:pXbbrMXT0
皆様、29970/1000になってしまう件の検証本当にありがとうございます。
にもかかわらず、あまり手が付けられておらずすみません。
ただ、29970/1000と誤認されるファイルの共通点が見つかりました。
エンコーダーのバージョンが
x264 core 142 r2409M+r890[x86] release1
今のところ、全部これでした。
(これ以前のバージョンの動画は持ってないです。
x264 core 148 r2665以降では発生してません。
違法なものではありませんが、自分でエンコしたものではないので、使ってるソフトとかも分かりません。
LAV LAVFiltersでデコードする時も同様の状況なので(そもそもffmpegとデコーダ共通かもしれませんが…)
もしかしたら、読み込みではなくエンコードの方がおかしいのかもしれません。
ただ、ブラウザでは期待通りの滑らかな再生ができるので、何とかなりそうな気はするのですが…
サンプルできたら持ってきます。
にもかかわらず、あまり手が付けられておらずすみません。
ただ、29970/1000と誤認されるファイルの共通点が見つかりました。
エンコーダーのバージョンが
x264 core 142 r2409M+r890[x86] release1
今のところ、全部これでした。
(これ以前のバージョンの動画は持ってないです。
x264 core 148 r2665以降では発生してません。
違法なものではありませんが、自分でエンコしたものではないので、使ってるソフトとかも分かりません。
LAV LAVFiltersでデコードする時も同様の状況なので(そもそもffmpegとデコーダ共通かもしれませんが…)
もしかしたら、読み込みではなくエンコードの方がおかしいのかもしれません。
ただ、ブラウザでは期待通りの滑らかな再生ができるので、何とかなりそうな気はするのですが…
サンプルできたら持ってきます。
2021/12/24(金) 10:03:09.26ID:E4mzvlY30
mkvの話が出てたけど8月あたりから
-default_mode の初期値が passthrough になってて、デフォルトトラックの概念の無いコンテナからそのままmkvに出力すると
今までは自動的に映像/音声/(字幕)の各1トラックに付与されてたデフォルトトラックフラグの無いmkvが生成されるようになってるから注意な
別に実用上問題は無いけど
-default_mode の初期値が passthrough になってて、デフォルトトラックの概念の無いコンテナからそのままmkvに出力すると
今までは自動的に映像/音声/(字幕)の各1トラックに付与されてたデフォルトトラックフラグの無いmkvが生成されるようになってるから注意な
別に実用上問題は無いけど
2021/12/24(金) 16:17:26.16ID:WinHvixB0
VFRと小数フレームレートが合わさるともう大変だな
2021/12/24(金) 18:15:12.03ID:YrdNpypd0
ffmpeg-windows-build-helpersでビルドしてたけど最近あんまりスクリプトのアプデが活発じゃないから
rav1eには対応しないし既に上流でマージされたパッチほったらかしだったりバージョン指定してるライブラリがえらい古かったり
media-autobuild_suiteに乗り換え時なのかな
自分でスクリプト編集しろ?アッハイ
rav1eには対応しないし既に上流でマージされたパッチほったらかしだったりバージョン指定してるライブラリがえらい古かったり
media-autobuild_suiteに乗り換え時なのかな
自分でスクリプト編集しろ?アッハイ
2021/12/27(月) 19:08:18.57ID:kwjx86lM0
タイムベースの話を聞いて、AAC-LCとOpusはよく使われるタイムベースが違うのにフレームサイズが20msに近いのはなぜだろうとおもった
近づけたのか?
近づけたのか?
2022/01/02(日) 10:44:17.66ID:k7xYdAdZ0
>>266
タイムベースの逆数がタイムスケールってやつだとおもう、たぶん、自信ない
こういうことなんじゃないかと箱根駅伝を見ながら描いたイメージ図、あってるかな
https://imgur.com/a/YxWn1UT
タイムベースの逆数がタイムスケールってやつだとおもう、たぶん、自信ない
こういうことなんじゃないかと箱根駅伝を見ながら描いたイメージ図、あってるかな
https://imgur.com/a/YxWn1UT
2022/01/02(日) 15:08:13.10ID:p7YNKDKr0
>>272
タイムスケールか……仮にその関係性が正しいならコンテナごとに実はタイムスケールを採用してるとかだとしっくり来るね
図は合ってると思うけどタイムベースって1つずつ全部並べるイメージ無かったなぁ
数直線上に(フレームが存在するtickだけ)丸め誤差による1tickのずれを無視すれば等間隔に存在するイメージ
タイムスケールか……仮にその関係性が正しいならコンテナごとに実はタイムスケールを採用してるとかだとしっくり来るね
図は合ってると思うけどタイムベースって1つずつ全部並べるイメージ無かったなぁ
数直線上に(フレームが存在するtickだけ)丸め誤差による1tickのずれを無視すれば等間隔に存在するイメージ
2022/01/02(日) 22:39:35.20ID:VX0RnKrj0
ねんがんのWSL2+Ubuntu入れた
ビルドはまた今度
ビルドはまた今度
2022/01/03(月) 01:18:54.92ID:YKWcBRpJ0
>>273
そうそうタイムベースが1刻みずつ数直線上に並んでるイメージで描いてた
複数のトラックと同期を取るため必要十分な精度のクロック的な見かただった
等間隔に存在するイメージというのもわかる、動画のフレームに着目すると3003tickのかたまりが並んでるイメージ
タイムベースしだいで誤差が出る件はもやもやしてた
こっちは誤差のn-tickのずれが現れるのはタイムスケールがフレームレートで割り切れないときで
複数トラックそれぞれのフレームレートの公倍数にタイムスケールを設定するとずれが現れないということだとおもう
MPEG2-TSのタイムベース1/90000はNTSCの30000/1001、PALの50、音声の48000/1024、48000/1536でうまく割り切れたからたぶん
そうそうタイムベースが1刻みずつ数直線上に並んでるイメージで描いてた
複数のトラックと同期を取るため必要十分な精度のクロック的な見かただった
等間隔に存在するイメージというのもわかる、動画のフレームに着目すると3003tickのかたまりが並んでるイメージ
タイムベースしだいで誤差が出る件はもやもやしてた
こっちは誤差のn-tickのずれが現れるのはタイムスケールがフレームレートで割り切れないときで
複数トラックそれぞれのフレームレートの公倍数にタイムスケールを設定するとずれが現れないということだとおもう
MPEG2-TSのタイムベース1/90000はNTSCの30000/1001、PALの50、音声の48000/1024、48000/1536でうまく割り切れたからたぶん
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 台湾有事での集団的自衛権行使に「賛成」が48.8%、「反対」が44.2% ★8 [♪♪♪★]
- 中国国連大使「日本が中国に武力行使すると脅しをかけたのは初めて」 国連事務総長に書簡★4 [♪♪♪★]
- 【🐼】パンダ、日本で会えなくなる? 中国との関係悪化で不安の声 [ぐれ★]
- 【芸能】44歳・池脇千鶴、激変ぶりにネット衝撃 「まるで別人…」「変化が凄い!!」の声 [冬月記者★]
- なぜ立花孝志氏の言葉は信じられたのか…"異例の逮捕"が浮き彫りにした「SNSの危険な病理」 [ぐれ★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★15 [BFU★]
- 🏡😡
- 中国「ごめん、色々やりすぎた謝るから和解してほしい」高市首相「舐めてんの?」 [834922174]
- 中国「国連さん聞いて!日本が反省しないの!日本は武力介入しようとしてるよ!」
- どマゾ豚男だけど苦痛系で痛ぶってくれるS女を探してます
- 龍が如く ON THE END 極
- 【悲報】日本人、突然全員高市早苗の反転アンチになる。外交勝負服発言がどうしても許せない模様 [517791167]
