現状、ffmpegには日本語のマニュアルが乏しい。
http://mobilehackerz.jp/archive/wiki/index.php
「最新」ffmpegのオプションまとめ、と名が付けられて検索の上位に現れるが
Last-modified: 2009-12-18 である。
以降のバージョンのffmpegで新しく加わったオプションは掲載されず
逆に代替オプションの出現などで廃止されたオプションがそのまま掲載されている。
構わずに使おうとしてもffmpegがエラーを返し、オプションが廃止されたからというだけの原因に辿り着くまでに多くの時間を費やす羽目になる場合も。
ブログなどで「私的に使う用」の設定は散らばっているが
その新しいオプションをどこで知ったか、他のオプションをどこで知れるかの案内などはもちろん無い。
ffmpegで使用できるコマンドの全体を知るには、optionsとfiltersを把握する必要がある。
https://ffmpeg.org/ffmpeg.html#Options
https://ffmpeg.org/ffmpeg-filters.html
オプション側では足りずフィルター側で補われている機能は、説明の記述もフィルター側にしか無い。
これらが一つの行に混在して使われるため、両方に目を通なければならない。
しかも説明は全て英語で、中には日本語での説明や記事がネット上に一つも確認できない機能もあるだろう。 >>1
乙だが、そのままコピペしないで、ffmprgぐらいは直しておいてくれw こんどAMDからi7超すcpu出るらしいけどあれでエンコしたらはやいのかな?
Ryzenなら、AVX2ユニットがIntel CPUの半分しかないから、そこが弱点。
x264はAVX2を殆ど使ってないので、Ryzenのほうが速い
x265はAVX2が多用されているので、Intelのほうが速い、と言われている
実際にどうかは28日のNDA解除を待つしか無い
タイムスケール
タイムベース
タイムスタンプ
の違いをバカな私にもわかるように教えてください
お願いします
>>前スレ973
printコマンド?と思ったら
utilityにあるんですね
完全に見落としてました
mkvってh264+flacだけどh265+flacみたいな形のコンテナは出来ないんかね
mp4はh264+aacで可逆圧縮音源のっけらんないし
来週から腫瘍摘出で入院するんだけど以下のオプションで最大妥協圧縮して
自宅鯖からファイル転送をかけようと思う (転送量を抑えるのが目的)
解像度も音声もこんな物で妥協しようとしていますが
もっと最適な引数があればアドバイス下さい
ffmpeg.exe -i "$FilePath$" -vcodec hevc -preset veryfast -deinterlace -crf 24 -b:a 32k -ac 2 -s 360x270 "$FolderPath$\$FileName$.mp4"
解像度を凄く小さくするのに、veryfastでエンコするの?速度重視ということか。
vdocecはhevcよりx265のほうが良いと思うけど、x265が入ってないffmpegバイナリなの?
音のCODECも指定されてないね。32kでエンコするなら、変なCODECだと音が凄いことになるぞ
>>11 ありがとう h265+flacできたわ これでいけたわ
"<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -f matroska -vcodec hevc_nvenc -b 3M -vf yadif=1:-1:0 -acodec flac "<%OutputFile%>.mkv 透過付きVP9のエンコードで詰まってる
png連番をそのままWebMに変換すると透過ありになるんだけど
-vf colormatrix=bt601:bt709で色空間を変換すると透過が消えちゃう
(元の色空間だと多くのデコーダーで色味がおかしくなる)
色空間変換と透過指定を何とか1コマンドで解決する方法ないかな?
-pix_fmt yuva420p指定してみたがフォーマットはアルファ付きだけど肝心のアルファ値が失われてて駄目だった
32kbpsにこだわるならopusがベストだな
oggに格納してVLCくらいでしか再生できないだろうけど
>>19
籠った音になっちゃったんで、結局64kにしちゃいましたよ
圧縮もそれほどPC占有しない様なので -r 15にしました。
30分番組が70Mってとこですね、TVtest後バッチでやったら空白がファイル名にあると上手くいかないので
試行錯誤してるとこです。 ffmpegのaacなんかオマケで付いてるようなもんだろ
aac使うくらいならvorbis使うわ
今のffmpegのAACはかなり音質アップしてるんだぞ
高音質で評判のfdk-aacが、ライセンスの関係でビルド済みを配布出来ないんで、
ffmpeg標準のaacエンコーダーの改良頑張ったという話だ。
vorbisよりもopusのほうが音質いいし、開発も活発だぞ
言うてもfdkaacの方がまだFFmpeg内臓AACよりいい状態だし
opusは汎用性ないから様子見
fdkがきちんとVBRサボーとしたらいいんだけどな。
現状、VBR自体は使えるし、内蔵より音もいいんだけど、
なぜかCBRとして認識されちゃう。
ffmpegで複数のコマンドを自動で実行する方法はないものか…
別のツールだと複数のコマンドを書き連ねたテキストファイルを読み込んで実行するものがあるが
それはffmpegの領分じゃないだろ。適当にシェルスクリプト組めばいいだけ
いるよね、自分の無能を取り繕おうとしてさらに晒しちゃう人って
https://ffmpeg.zeranoe.com/builds/
↑
ここのサイトから32bit/staticなffmpegをもらってきてQuadro K2200が刺さってる
マシンで "-c:v nvenc" でエンコードしても全然速くなりません
"-vf scale" を付けない場合でCPUエンコードの倍くらい、 "-vf scale" で縦横サイズを
小さくした場合はCPUエンコードと全く変わらない速度になります
"-vf scale" を付けた場合でGPU使用率が5〜8%位にになるのでffmpegがGPUに対応して無いって
訳じゃなさそうなんですが、GPUエンコードの実力値ってこんなもん? ミス
"-vf scale" を付けた場合でGPU使用率が5〜8%位にになるので
↓
"-vf scale" を付けない場合でGPU使用率が5〜8%位にになるので
CPUvsGPUでCPU速ければそんなものでしょう。CPUが何なのか分からないけど。
もともと重い物ほどHWエンコードは効果あるだろうからHEVCやってみたら?
静止画ファイルと音声ファイルをくっつけて動画ファイルを作ろうと思っています
元の画像の縦横比に関わらず自動で余白を付けて640x480のサイズにリサイズし出力したいのですがやり方が分かりません
ffmpeg -y -r 1 -loop 1 -i %image% -i %audio% -c:a copy -vf "scale=-1:480,pad=640:ih:(ow-iw)/2" -pix_fmt yuv420p -t %duration% -g 600 "%~dp1%audio_name%_mux.mp4"
これだと縦長の画像は上手く処理できるんですが横長の画像だと失敗してしまいます
どのようにすれば実現出来ますか?
scale より pad を先にして縦長か横長を if() で分岐して4:3に余白をつけて scale すればいいかもしれない
最近のffmpeg(libavfilter 6.88.100で確認)だとpadフィルタのパラメータにaspectってのがあるからそれ使えば楽かも
こんな感じ、pad=aspect=4/3:x='(ow-iw)/2':y='(oh-ih)/2',scale=640:480
試してないけどね
-vcodec hevc_nvenc
のエンコード時のみんなのオプション設定張っていってよ(´・ω・`)b
うちはとりまこんなかんじ
>ffmpeg.exe -i input.ts -an -deinterlace -nr 5000 -vcodec hevc_nvenc -preset slow -rc constqp -qp 25 out.mp4
(コンテンツによって qp=25〜30くらい)
最初 -rc vbr_2pass 使ってみたんだけど、-cq 1とかにしてもなぜか動きの早いシーンでやたら崩れるので…
-vcodec hevc_nvenc
のエンコード時のみんなのオプション設定張っていってよ(´・ω・`)b
うちはとりまこんなかんじ
>ffmpeg.exe -i input.ts -an -deinterlace -nr 5000 -vcodec hevc_nvenc -preset slow -rc constqp -qp 25 out.mp4
(コンテンツによって qp=25〜30くらい)
最初 -rc vbr_2pass 使ってみたんだけど、-cq 1とかにしてもなぜか動きの早いシーンでやたら崩れるので…
そんなもん使ってる奴はほとんど居ないと思うが
結局、激しい所で崩れるならビットレートなりqpが足りないからだろう
qpのminでも設定してやりゃいいんでねーの
profileとかエンコするときの最初のメッセージに書いてあるんじゃね
>>42
お前のために、なんでそんなことしなきゃいけないんだ?
自分を何様だと思ってっるんだ 掲示板なんだから後から来た人のためにも仲良くしようぜ
>>45
お前こそ何様だよ
気に障るならスルーすれば良いだけの話だろ 後から来た人の為といえば
zeranoeのnightlyはまあ良いとしてversioned-staticはもうちょっと古いのも残しといて欲しかった
いまから1.xとか使うとは思わんというのは確かではあるんだが
>>48
リリース版のstatic-buildは、VideoHelpに全部あるよ。
shared-buildや開発版のビルドはarchive.orgで入手できる。 結局 h.265のハードウエアエンコーダー環境持ってるやつってそんないないんだな…
>>44
-rc vbr_2pass ではqpなんて設定できないぞ >>50
SkyLake・・・
KabyLake・・・ 一つの動画に、パートA パートB パートC パートD パートE
があって、
-ssで、一つずつを切り出す事はできたのですが、
パートBとDを切り出して
パートACEという一つの動画を作る事は可能でしょうか?
時間指定はそれほどシビアではなくトランスコードなしでカットしたいです
切り分けたファイルに concat すればいい。
対応コンテナは一部に限る
ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.ts
または
ffmpeg -f concat -safe 0 -i input.txt -c copy output.mp4
input.txt に書き込む内容
file test1.mp4
file test2.mp4
ありがとうございます。
一発で済ますのではなく、バラバラに作ったものを結合する感じなんですね。
gui的感覚ではそうなのかもね
結局やってることは同じだけどね
選ぶんだな、バッチファイルを書くかSmartRendererを買うか
最近のffmpegはnvenc・h265で5.5倍速は出るから変換はやくていいな。
RadeonのGPGPUもそろそろサポートしていいんやで
VCEに対応してないからradeon導入見送ってしまったわ
実際VCE vs NVENCだと速度比どんなもんなんだろう
家族用に新PC組んだんだけど昨今の有り余るマシンパワーを
メールやネットサーフィンだけに費やすのはもったいないから
自動エンコマシンにしてしまおうと思ってる。
具体的にはPCが起動している最中は、ネットワーク上に保存されている
未エンコ動画をゲットしてきてダウンロードし、これを再エンコードし終えたら
再びネットワーク上にプッシュする自動エンコマシンにしようと思ってる。
ただ長時間動画をエンコードするにはそれなりに時間を要すわけで
メールを確認する5分の間だけPCを起動する、というのを延々と繰り返す限り
動画のエンコードが完了することは無いわけで・・・
そこでPCを5分起動しているならその間だけ出来るエンコをして保存する、
というのを繰り返していけないかと思ってる。そうすれば原理的にはどんな
長時間動画であってもいずれエンコードが完了するはずだ。
現行のffmpegは長時間動画を細切れエンコードしていって
最終的に動画全てのエンコードを終えるようなことってできる?
それも画質的に通しでエンコードする通常方式と比べて遜色なく仕上げることって可能?
ffmpeg 単体よりもスクリプト書いた方がよさそう
5分だけエンコードして終了してを繰り返すなら、trim|atrim フィルタで
カットしないと分割部分が重複・歯抜けしそうだ
>>64
仮想マシンを裏で走らせてその上でffmpegを普段通り動かせばいい。
ホストPCシャットダウンしたときはスリープ状態で止まるだけで次に起動してきたら何事も無かった様にエンコードを続ける >>65
trim/atrimで細切れカットして個別エンコードしたあと結合して
結合箇所ってあからさまに分かったりする?
それともよほど注意深く見ても結合箇所って気付かないもの?
>>66
なるほどね、そういう手もあるのね
> ホストPCシャットダウンしたときはスリープ状態で止まるだけで
OSはWindows10 Proだけど付属のHyper-Vでそういうことできちゃったりする?
それともVirtualBoxとか入れないとダメ? 出力コンテナを ts にして cocat コピーすれば問題ない
ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c copy output.ts
>>68
d
>>69
最終的な映像コーデックはH.264かH.265にする予定
これらもconcatしちゃって問題無いよね? h.264とかh.265はエンコードオプションにおまじないみたいなの加えないと結合した時に問題が起きるんじゃなかったかな
.tsファイルを.mp4にする時に
ffmpeg -i input.ts -vcodec copy -acodec copy -bsf:a aac_adtstoasc -movflags faststart output.mp4
と、しているのですが、元はCBRなのに、できあがったmp4ファイルが可変フレームレートVFRになってしまいます。
これは仕方ない事でしょうか?
VFRと言っても、最大と最小の範囲が極めて狭いので、CFRみたいなものですが…
もっといい方法があるのかなと思いまして
は?
CBRって固定ビットレートのことだぞ
可変フレームレートと関係無くね?
フレームレートなのかビットレートなのかで話が変わりそうだけど
指定すればいいんじゃないの
すいません、単純に書き間違えました
CBRはCFRの間違いです
音ズレの原因になる可能性はあるね
ffprobeで他に違いはないか比べてみたら?
>>73
H.264,H.265系は部分エンコード→最終結合には不向きなコーデックってことなのね
ありがとう
Hyper-Vでのエンコード考えてくる AviUtlのプラグイン出力でmp4動画をwebmで出力しようとすると
---------------------------
ffmpeg.exe - システム エラー
---------------------------
コンピューターに libsnappy.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
何回やってもこれが出てググっても解決方法が分からない…誰か助けて
BSの番組の途中で1920*1080→720*480みたいになる番組たまにあるんだけど
それをffmpegでエンコする時画質が切り替わる瞬間でffmpeg終了するんだよね
これ経験ある人とか無理やりエンコする方法知ってる人いる?
>>85
EDIUSなんかのNLEに読ませて、一括通し同じ解像度のクリップに出力 途中からニュースのためにマルチ編成に変わったりで、アスペクト16対9のまま解像度が落ちる
>>87
さすがにEDIUSってプロ用ソフトを使うのはちょっと高いですね
ノンリニア編集ってのがffmpegでできるのかよくわかんないけど調べますね 入力オプションに -ss と -t オプションを指定して -c copy で出力すれば
同じ解像度の部分だけ切り出せるんじゃない?
TMPGEnc MPEG Smart Rendererはクリップ先頭の解像度に合わせて以降
変更があった部分を再エンコードした希ガス・・・
>>90
値段がネックなら、ソースネクストでVegas Proの95%オフ4980円
プロ用CODECと考えたら安い 普通にTSSplitterで分割しとけばいい話だろ
ffmpegの停止処理について教えてください。
任意のタイミングで停止させたいのですが、サイトにはqで停止できる有ります。
確かに、qで停止できるのですが、pipeを使っている場合はこの限りではないようです。
pipe利用時の安全な停止方法はどのようにすればよいのでしょうか?
なお、ffmpeg実行中のDos窓は開いていない状態となります。
何卒よろしくお願いいたします。
時間が決まっているならソースに -t オプションで時間が指定できる
すいません、時間が決まっておらず、何らかの操作によって止めたいのですが、方法ありますでしょうか?今はプロセスkillしているのですが、それは正しい操作とは思えないので。
>>96
Unix 系なら named pipe を使うのかなぁと思うけれど、DOS 窓ってことは Windows でしょ? >>97さん
そうです。windowsになります。pipe0を利用して音声データを流し込んでいます。 Windowsのpipeはどこからも参照されなくなれば解放されて消えて無くなるから
気にしなくていいんじゃない?
お望みのものと違う気がするけどタスクスケジューラから実行すると停止ボタン一つでkill出来て便利だよ
>>93
TSSplitterで試したらいけました ありがとうございます ffmpegで音声を合成(amerge)すると音が小さく(こもったよう)になります。
元の音量でマージすることはできないのでしょうか?
Windowsで、ただコンテナ入れ替えたいだけなので、
元ファイルと更新日時(できれば作成日時も)を、できあがったファイルにコピーして
元ファイルを捨てるという使い方をしたいのですが、
batファイルで日付のコピーまで済ませることは可能でしょうか?
元ファイルを捨てるのは手動でかまいません
よろしくお願いします
>>103
タイムスタンプをコピーするコマンドラインツールを探してきて対処したらどうかな 自分で使ってるカレントディレクトリ以下のの同じ拡張子のファイルを一括してコンテナ変えて
タイムスタンプはオリジナルと同じにするワンライナー
先頭の拡張子を変更すれば色々対応可能
Bash on Windowsでも動くんじゃね?
src=mp4 dst=mkv; for i in *.$src; do ffmpeg -i "$i" -c copy "${i%.*}.$dst"; touch -r "$i" "${i%.*}.$dst"; done
高深度YUVでSSIMを測りたいと思っているのだけど、
yuv444p16のソースをlibx265のcrf=23でyuv420pにエンコして、yuv444p16でSSIMを測ると
値が1.0を超えることがちょくちょくあるのだけど、これffmpegのバグなんだろうか?
バグだとしたらyuv444p12などにも影響があるんだろうか?
Avisynth+が必要ですが、再現用のバッチを作ってみました。
ffmpegで16bit深度YUVでSSIMを計測すると1.0を超えてしまう問題の再現バッチ(修正版)
https://pastebin.com/J9qXtrv9 >>108 訂正
× 値が1.0を超えることがちょくちょくあるのだけど、これffmpegのバグなんだろうか?
〇 値が1.0を超える。こういうことがちょくちょくあるのだけど、これffmpegのバグなんだろうか? 3.3.2だと1超えた
[Parsed_ssim_0 @ 00000000025ec9c0] SSIM Y:1.019814 (nan) U:0.914312 (10.670793) V:0.960210 (14.002282) All:0.964779 (14.531944)
>>110-112
なんということでしょう・・・なぜ俺は最新のビルドで試すのを怠ったのでしょう・・・
というか一応vf_ssim.cのhistory確認して、5/20以降更新されてないからダメポって思って
書いたはずなのに、なんで6日前の修正を見逃していたのでしょう・・・。
教えていただき本当にありがとうございます。大変助かりました。
しかし絶妙なタイミングで問題に引っかかってしまったものだ・・・orz
いや、絶妙なタイミングで解決されてて助かるんだけども・・・ ffmpegの公式サイトを見たら、このサイトは中立ではないウンタラカンタラと英語のメッセージが出たけど俺だけ?
アメリカ人の将来のネット環境を左右する抗議活動だね
感染したかと思った
各サイトの運営者がやってるのかな
久しぶりにVP9のエンコスピード見てみたけど遅すぎて使えぬ
せめてnvenc使えたらもう少し早くなりそうなんだけど
普段は全部h265使ってるけど久しぶりにVP9やってみたのよ
Kaby LakeだとCPUが対応してるんやな
QSVfps300越えしてるのかnvencより早いな、と思ったらH.264か
ペンティアムのqsvでh265エンコfps50出るのか
すごい
KabylakeのQSV VP9エンコードって、IntelMediaSDKがまだ対応してないからWindowsではまだ無理で、
Linux(VAAPI利用)でしか使えないんだっけ?
ffmpegで、m4aファイルをmp3に変換しました
単純に、
ffmpeg.exe -i file1.m4a file2.mp3
としたのですが、出力ファイルのサイズが3倍くらい大きくなり、調べると、ビットレートが
46kbpsが124kbpsになっていました
ビットレートを指定して変換なら調べてわかったのですが、ビットレートを変えずに元のままそのまま
変換することはできますか?
ファイルに合わせていちいち指定するのめんどいです
むりです。
面倒臭がりはそういう作業はしないでおこう。
>>125
ffprobeまたはMediaInfo(CLI)とかで元ファイルの音声ビットレートを調べて
調べたビットレートをffmpegのオプションで指定するバッチを書けばできる。 元ファイルのビットレートも変わるから、元ファイルと変わらないビットレートでmp3にしたいって言っるんでしょう。
元ファイルにいちいち合わせてが面倒なんだからさ。
>>128
だから元ファイルのビットレートを調べてそのビットレートを設定してエンコするバッチを書けと言ってるんだが・・・
まあMP3で46kbpsとか酷い音質だろうなとは思うがそこは知らん。 >>125
同じビットレートならなんのために変換すんの? なんかエラーさえ起きなければ拡張子変えるだけでいいんじゃないかって気がしたよ
>>125
くっそ適当だけど
for /f "tokens=6 delims= " %%i in ('ffmpeg -i file1.m4a 2^>^&1 ^| find "bitrate"') do ffmpeg.exe -y -i file1.m4a -b:a %%ik file2.mp3 調べてバッチ書くのも数値て直接オプション指定するのも、調べて書くというのは同じだろ
>>125はいちいち調べないでやりたいって言ってるんでしょ。
「元のままそのまま」って言ってるんだからさ。
自動で元のファイルのビットレートを読み取ってそのままの数値でmp3にしたいのが>>125の言いたいこと
それくらい読み解けるだろ。
夏だなぁ〜〜 >>130
横だけど
うちは、mp3が再生できてm4aが再生できない機器のために変換してる >>133
> 調べてバッチ書くのも数値て直接オプション指定するのも
ああ、これ読んでやっとわかったけど、バッチ処理のことをよくわかってないから文章の意味を取り違えたのか・・・。
>>132の例(実際に動くか確認はしたわけじゃないが)のように、
「元ビットレートの調査+それを設定してのエンコ」を自動でやるバッチを書けってことだよ。
今年の夏はバッチのことを勉強するといいかもね。
俺も今月に入ってから色々勉強したばかりだけど結構面白かったよ。 -c:a libmp3lame -q:a 5 辺りにしておけばまず問題なし
>>135
何言ってるんだよ。
お前の日本語がおかしいだけだろ。
バッチ勉強する前に日本語勉強した方がいいぞ。 >>137
( ´Д`)=3
>>125 >>132
練習がてら書いてみたけど、こんな感じかな。何か変なことになっても責任は持たんけど。
@echo off
cd /d %~dp0
set ffmpeg=.\ffmpeg.exe
IF "%~1"=="" (
@echo ファイルが指定されていません
exit /b 1
)
FOR /F "tokens=6,7" %%a in ('%ffmpeg% -i "%~1" 2^>^&1 ^| findstr /B /C:" Duration:"') DO (
IF NOT "%%b"=="kb/s" (
@echo 何かビットレート取得に失敗したっぽいのでやめるわ
exit /b 1
)
set bitrate=%%ak
@echo ビットレートは %%ak だな。ストリームじゃなく全体のビットレートだが構わんだろ。
@echo ストリームから取ろうとすると例外とかありそうで怖くてめんどい。
)
%ffmpeg% -i "%~1" -c:a libmp3lame -b:a %bitrate% %~dpn1.mp3
pause 携帯動画変換君でnvencとかちょこちょこやってるぐらいだと上のみたいなやつってどう書けばいいのかわからにゃいのおってなる
>>138
いい人だな
質問した人じゃないけど勉強させてもらうわ
テキトーにtxt書いてbatにしてただけだから、ちゃんとした文法を知らない >>139を書いたあとに、入力拡張子がm4aかどうかのチェックとか、bitrateがちゃんと取れたかのチェックとか
exitじゃなくてgotoで最後のpause前に飛ばさないと画面がすぐ閉じてしまって
エラーメッセージが見れないとか気がついたけど、まあそこは適当に変えて。 みなさんありがとうございました
m4aからmp3へ変換したかった理由は、VLCで再生したとき、早送り、巻き戻しをすると
すぐには再生せずに間があき、最悪ハングアップしたりするためmp3に変換しました
mp3だと早送り巻き戻しをしても間髪いれずにすぐ音が出ます
vlc以外でm4aでも問題なく早送り等ができるソフトがあればそれをインストしてもいいのですが、vlcで慣れているので
わざわざスクリプトを書いてくださってありがとうございます。やっぱりそういうことをしないとダメなのですね
スクリプトは参考にさせていただきました
>>143
>>139のバッチ使うなら「%~dpn1.mp3」を「"%~dpn1.mp3"」に書き換えたほうがいいよ。
ファイル名にスペースとか記号が入っているとエラーになると思う。 VLCMPは2008年ごろに一部のバカ信者が持ち上げてただけの今や開発者不在の落ち目ソフトだ
ローカルファイルなのにMP4のランダムアクセスできないのはVLCMPかMP4ファイルヘッダが異常
異常なファイルのみMP4フォーマットへの再多重化もしくはMKVなど別フォーマットへの移し替えのほうが劣化や演算量がなくいい
圧縮性能が向上しているコーデックならともかく
圧縮性能が悪いmp3への同一ビットレート割当での再圧縮など愚の骨頂
別のメディアプレイヤー探したほうが早い
WMPやWin10初期アプリでもポピュラーなコーデックのMP4ファイルなら普通に再生できるはずだが
>>147
> まず、ffmpeg で、そのまま
> ffmpeg.exe -i file1.m4a file2.m4a
> とやると、やっぱりビットレートが124kくらいになってしまって変換時間もかかるしファイルも大きくなります
ffmpeg.exe -i file1.m4a -c:a copy file2.m4a
でいいんじゃないの?これ指定すればオーディオ自体の再変換なしでコンテナの再構築ができると思うけど。 >>148
やってみました。 元ファイルのように最悪ハングアップすることはなくなったように思いますが
やはり早送りした直後に、間が空きますね。 mp4boxでは空きません ffmpegはデフォルトでfaststartにならないからな
>>146
スレチなんだがなんのメディアプレイヤー使ってるん? ヘッダが壊れるって、無線LAN越しでの録音かな
もしそうなら、LANケーブルで繋ぐだけて壊れてないファイルができるようになって問題が解決したことがあるよ
ストリーミング配信をtcpdumpでキャプチャしたヤツだろう
拡張子がm4aと書いてあったから考えていなかったけどADTS AACファイルでは?
先頭から再生する分には問題がない、音の高さやテンポには問題がない、ただしランダムアクセスできないというのは
ADTS AACファイル特有の症状。というよりはそうなって当たり前のファイル形式。
ランダムアクセス(早送りとか巻き戻しの任意位置からの再生)に時間がかかるのは
この形式にはランダムアクセスを行うためのファイルヘッダがないから。
どこからデコードすれば最短なのか知る術がないので仕方なく毎回ファイルの先頭からデコードしているから時間がかかる。
MP4やMKVといったモダンなファイルフォーマットにおさめてやれば
2分30秒から再生してくれという指示があればファイルヘッダ参照して該当フレームの1つ前から読みにいく
radikoの音源ってflvから音声ファイル抜き出す時にm4aだと-acodec copyしてるのに音悪くならない?
aacだと音質変わらないんだけど
どうせhe-aac v2に対応してないプレーヤー使ってるとかそういうオチだろ
本当にm4aなら普通にitunes使った方がいい
それが嫌ならmpv
>>157
設定、ログ、再生ソフトを貼らないとなんとも言えんだろ
ffmpegのバグなら、バグ報告しとけ >>158の指摘通りRadikoはMain ProfileのAAC+SBR+PSだから
対応プレイヤーでないと無劣化では再生できない なるほどプレーヤーの問題かも
VLCとかmplayerだと綺麗だけど、iTunesだと篭る
iTunes常用してるんで困ったな
iTunesて、HE-AACv2ダメだったのか
知らんかった、トンクス
ffmpegはHE-AACに対応したものだよな?
>>162
> ffmpegはHE-AACに対応したものだよな?
しばらく自ビルドしていないしソースコードも追いかけていないので最近の事は分からないのだけれど、
ライセンスの関係で libfdk_aac をリンクした ffmpeg バイナリの再配布はできないことになっているので、
自分で libfdk_aac をインストール、ffmpeg を --enable-libfdk-aac で configure、make しないと
HE-AAC に対応した ffmpeg は手に入れられませんよ。 今時v1は再生できてv2は再生できないプレイヤーなんてあるんだ
v2というよりプロファイルがLCじゃなくてMainなのが問題なんだと思う
>>163
FDKのみがライセンス違反で配布できないと思ってんの?ほんと馬鹿が多いよな
なぜ公式がソースコードという形で入手可能にしてんのか何もわかっちゃいない
FDKリンクしてなけりゃ実行ファイル公開していいと思ってんのか? はたから見てるんだが、バカカバじゃなくてどこがおかしいのかちゃんと書いてほしいよ
>>164みたいのはマジいらねえわ >>170
なんと言えばいいのか、話す気力が失せるぐらい突っ込みどろが多すぎ
どこがおかしいのかちゃんと書いてほしいて、自分に問題があるとは思わないのか?
とりあえず、設定、ログ、再生ソフトを書かないと どこがってそりゃあ一切無関係な事書き込んでて一分の役にも立たないことかな
>>167さんはまだちゃんと書いてくれてるよ
おれには良くわからんが、わからんなりにちょっと調べてみようかっていう気にはなる まあ相手する価値もないってのなら、まあそういう態度にもなるのかなって気もするけどw
>>173
調べる気なら調べればいいよ
調べたのならわかるはずだし
自分に問題があることを自覚するのが先決だろ
というか、レスに答えがあっても理解できないだろ >>167
もしffmpegの再配布がライセンス違反だとしたら
ffmpegもインストールzipに含むradikoolは違法ソフトってことになるな
で、事実はどうなのよ?
radikoolは違法ソフト? 根本的な問題としてビットストリームには一切手を加えず
iTunesで再生できるコンテナに入れ替えたいというお題だから
demuxer/muxerが正しく処理できるかがが問題でエンコーダのエンジンは関係ない
お前自分でそれ是非判断できないくらい知識ないのかよ
本当無知野郎だな
知恵遅れで聴いてこいよ
>>177はまだわかってる
radikoolなんぞダウンロードしたことないからどんなffmpegが使われているかがわからんから
所有してるお前にしか是非判断できんな
どのみちRadikoの保存行為なんて大概利用規約に違反行為になってるだろ
>>163のようなFDKだから再配布できないとバカみてえな解釈してる無知野郎は消えな >>163は
> libfdk_aac をリンクした ffmpeg バイナリの再配布はできない
としか書いてないから、他にも再配布不可なバイナリの存在を
否定してる訳じゃない
>>179は
> どんなffmpegが使われているかがわからんから
と書いてるから、再配布可能なffmpeg バイナリの存在を
否定してる訳じゃない
煽ってるか、スルーしてるかの違いはあるが
両者とも言葉足らずという意味で、似た者同士ちゃうか 文脈を捻じ曲げた上に論点すり替えようとする馬鹿は書き込むな
そういいや、やたらバカ扱いに敏感な粘着自演がx265,x264,前スレに現れたな
同じやつだったりして
市販ソフト買ってコールセンターに電話した方がいい
質問主にはCUIは無理だ
少なくとも俺は多分、原因とどうすれば解決できるかわかったぞ
でも、書く気にすらならない
>>163
これの何が正しくて、何が間違いなのか
誰も解説してくれないのかい? >>163が非を認める情けない書き込みしたら教えてやるよ馬鹿ども なんか発狂してる変なの(>>185)がいるし、以前どっかのスレのためにまとめたものからのコピペ+αで俺が書いておくわ。
特許技術を含むソフトウェアのバイナリを配布した場合、
配布者は、特許権の侵害行為として何らかのアクションを起こされるリスクを背負うことになります。
特許権は保護期間中は許諾がない限り利用(製造・頒布)できませんが、
特許法の例外として「試験・研究目的」であれば許諾なしに利用できます。
通常は、ソースコード配布であれば試験・研究目的に該当するか、
そもそも製造前のモノであり特許権の侵害にはならないと解されるようです。
ちなみにフランスではソフトウェア特許は認められていないようで、それもあって
x264やffmpegを内包するVideoLANプロジェクトはフランスを拠点にしているとのことです。
なお、特許権と著作権は別々の権利であり、独立に存在します。
また、FDK-AACを組み込む場合、ffmpegをビルドする際に、configureに--enable-nonfreeをつける必要があります。
--enable-nonfree
allow use of nonfree code, the resulting libs and binaries will be unredistributable
要するにFDK-AACについてはフリーじゃないコードを使うから、これを含めたバイナリは
再配布しちゃ駄目だよってことですが、上に書いたようにそもそもFDK-AACを含まなくても
ffmpegのバイナリ配布は特許権侵害の恐れがあるのでアウト。
FDK-AACを含めたffmpegの再配布は、その中でも更にアウトだということです。
こんなとこかな。 >>186
簡単に言うと、
1)ソースコードなら自由に再配布していいが、exeやlibにしたら再配布したらダメよってことか
2)FDK-AACとかはソースコードでも供給されているので各自で自分でコンパイルする分には自由。
3)でも、コンパイルしたものを再配布してはいけない
4)ffmpegに各自が自分でビルドする場合もnonfreeってつけなければならずビルドしたのものの再配布は禁止
5)つまり、特にFDK-AACに関してはexeやlib形式で配布されているものはない とりあえず、nativeのaac-encがvbrに対応してくれたら、俺的にはおkかな
-codec copyにfdkとか全く必要ないのにいつまでその無駄な話続けんの?
使ってるソフト云々じゃなくて
問題の音声ファイルをffprobeにかければ何が問題なのかわかる
この手の輩は、挑発して説明させようとする
ボタがよくやる手口
自分の非を認めないうちに、ヒントを与えると図に乗るだけ
質問:radikoでdumpしたflvファイルの音声だけを無劣化で取り出すにはどうしたらいいの?
現状の方法
radikoをsaitenさんとこのでradiko.flvとしてdumpする
ffmpeg -i radiko.flvで見ると
radiko.flvは bitrate: 49 kb/sのHE-AAC
ffmpeg -i radiko.flv -acodec copy radiko.m4a
もしくはffmpeg -i radiko.flv -acodec copy radiko.aac
radiko.m4aはbitrate: 47 kb/sのHE-AAC
radiko.aacはbitrate: 45 kb/sのHE-AAC
無劣化のm4aとして取り出すのは無理なの?
それともこれで無劣化ということ?
>>193
何も説明する気が無いならせめて一度のつっこみで収めるかスルーしとけ。
アホな質問者にうんざりする気持ちはわからなくもないが、
この程度のことでしつこく説教したりもったいぶったり発狂したりする奴の方がうっとおしい。 >>195
それ、みんながお前のレスに思ってること 個人的に興味があったんで、>>143、>>147、>>156あたりの
「VLCでm4aのスムーズなシークができない件」をわかる範囲で少し調べてみた。
m4aとVLC再生時のシーク
https://pastebin.com/TNDs9D4H
ファイルはHE-AAC。ただ真空波動研でHE(SBR)表示がされずLCとなるのが少し気になる。
VLC以外のソフトでの再生・シークはiTunes含めて問題無し。
ffmpegの-movflags rtphintでも改善できたけど、MP4Boxを使った方が良い感じ。
なお-movflags faststartは効果無し。
上の方でRadikoのフォーマットについて、
>>158 HE-AACv2
>>160 Main ProfileのAAC+SBR+PS
というコメントがあったけど、これらのフォーマットって今も使われてるんだろうか?
ググった感じだと、HE-AACv2についてはWikiに試験配信時に使われてたとあったけど、
Mainのほうについては特定ソフトで録音した時の話のような気もした。
ただ、これまでRadikoには関心が無かったのでよくわからない。 たぶんhe aac v2まだ使ってんじゃないの
アプリで無変換録音するとaacになってるし
RadikoじゃないけどFlashベースのネットラジオを
ffmpegで -c copy でm4aにしたファイルがiTunesでこう認識されてるけど
>>202
試してみたけど、違いがわからなかったわ
そもそも、rtmpdump:flv → ffmpeg:m4a(-c:a copy -vnのみ) でVLC問題なかったし >>202
MP4Box前の元のm4aはVLCでダメだけど、MP4Box後のm4aは問題なくなったってことは、
元のm4aがどこかおかしいってことじゃないの?
MP4Boxによって何が変わったのかが大事だよね
元のm4aがフォーマット的に正しかったのかどうか。正しいにもかかわらずvlcでシーク出来ないのなら
vlcのせいだけどどうなのかな。でも、MP4Box後は直ったんだからね RadikoPad自体がffmpegを使ってるようだからffmpegのログをはらないと
non monotonically increasingのエラーが出てるんじゃねぇ
そうならdtsとptsの問題で、バグの可能性あり
メジャーなサイトであること強調してffmpeg tracにバク報告だな
別のオプションで完全じゃないけど回避できるかもしれん
ffplayer,mpv,mplayerでの挙動は?
そうたね。RadikoPadがffmpegから吐いたファイルが元のm4aなんだから
ffmpegのバグの可能性が高い
>>205
短いサンプルだとわからないと思う。書いたようにうちでは45分のサンプルで試した。
VLCだけシークで1〜3秒くらい止まる感じ。もっと長いともっとひどくなるかも?
VLCの詳細設定も見てみたけど効果が出るものは見当たらなかった。
>>207
-reportのログしか取れないんだけど、特にエラーは出てないね。
それらのプレーヤーは使ってないので挙動は不明。
>>206、>>208
規格とかはよくわからんけど、元のm4aがおかしいんじゃなく、
・どれだけシークしやすい形でm4aコンテナを構築するか
・どのような手法でシークするか
の違いなんじゃないかなと思う。つまり
・ffmpegのデフォのm4a化はあまりシーク情報を細かく入れないようにしているが
MP4Boxでは細かく入れるようにしている。
・他のプレーヤーはm4aコンテナの情報にはあまり依存しないシーク手法だが、
VLCはm4aコンテナの情報に依存したシーク手法をとっている。
という感じじゃないかなと。まあちゃんと調べたわけじゃないので推測にすぎないけど。 だから
ffmpeg -i 問題のファイル.m4a
だけしたログを貼ってみなさいよ
>>209
それ、おそらくファイルが断片化してるんじゃないか?
古いマシンの時、デフラグすると引っかからなくなることがあった。
ffmpegの出力は、意外なほど断片化するし。 >>204
どこのネットラジオですか?
あとOSはwindows?
自分はmacで-c copyだとv2にならない-acodec libfdk_aac だとv2になる >>209
まだログ貼ってないの?
ffmpeg -i url
ffmpeg -i -url -c:a copy 問題のファイル
ffmpeg -i 問題のファイル
ffmpeg -i 問題のファイル -c:a copy hoge.m4a
ffmpeg -i 問題のファイル -c:a copy hoge.aac
サスペンスドラマじゃないんだから推理や憶測はいいから、これのログをはれ
だからシーク情報が細かいとか言い出す<ハァ?だぞ
RadikoPadやvlcは一旦忘れろ >>210
>>202でffprobeの情報貼ってるのに何故そんな情報がいるんだ・・・と思って見直したら、寝ぼけてたのか
短い4分サンプルの方の情報を貼ってたことに気づいたので、あらためて45分の方を貼っておいた。
45分のm4aを調べた情報(真空波動研、ffmpeg、ffprobe、MediaInfo)
https://pastebin.com/sHvca98L
>>211
そのm4aを別のドライブにコピーしてもVLCのシーク遅延は改善されなかったので断片化ではないと思う。
>>212
libfdk_aacで再エンコしてるなら指定したフォーマットに変わるのは当たり前だと思うけど・・・。
>>213
その程度のログで何を知りたいのかよくわからんし、そこまで気になるなら自分でやってくれ。
シーク情報の細かさ云々は、再構成したm4aと元のm4aのコンテナ情報をboxdumperで見て比較して、
再構成した方は[stsc: Sample To Chunk Box]と[stco: Chunk Offset Box]の要素数が増えてたからそう推測しただけ。 >>212
macOSでサイマルラジオのFM局
Metadata:
major_brand : M4A
minor_version : 512
compatible_brands: isomiso2
encoder : Lavf57.61.100
Duration: 00:31:00.01, start: 0.000000, bitrate: 55 kb/s
Stream #0:0(und): Audio: aac (HE-AACv2) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 54 kb/s (default)
Metadata:
handler_name : SoundHandler
ログも読めてないのに何言ってんだ、こいつ
わかってないこと自体がわかってないことがわかってない
自分でログとれて何ほざいてんだ
お前と同じ環境、ビルドじゃないだろ
一から十までて手取り足取り言わなきゃわからんのか
人に検証意見を求めておいて何言ってんだ?
無知、頭の悪さ、傲慢さをさらけ出してるだけ
>>219
おまえみたいのが一番うぜえ。 消えろクズ ffmpegの出力ログをカラーのままhtmlか何かで保存する機能が欲しいな。
reportやリダイレクトでログ保存してるけど、後から見るときに結構見づらい。
ワードパット使え。リッチテキストなら色が簡単につけられるw
質問者、分析もどきの人ともに
張り切るバカほど迷惑邪魔なものはないの見本だな
>>224
問題の原因がわかってるなら教えてやればいいし、
分析もどきにおかしい部分があるなら具体的に指摘すればいい。
よくわかってないのにうっとうしいというだけの理由で馬鹿にしてるだけならただの無能だし、
理解してるのに教えずに馬鹿にしてるだけなら、性格悪いだけでスレにとっても無価値ってことで、全くいいとこないな。 ちなみに分析もどきと言われてるのは俺(>>202)だろうけど、いい機会だと思ってAACを色々試してたら
わからないことだらけだったんで、知識不足ってことで色々と調査中。そんな体たらくなんで指摘は歓迎。 俺は>>224のようなレスこそいらないと思ってる
スレに相応しいある議論があってそれについて語っているのであれば
よほど脱線しない限り迷惑だとは思わない
ついていけない輩には疎外感を感じるのかもしれないが
そういう時は黙ってスルーしなされ ログも貼らずに何言ってんだ?
言ってることに矛盾があることにすら自分で気づけないのか
知ったか、トンチンカンな無意味な分析はブログでやれ
頭が不自由て大変だな
結局ログ貼らないのかよ
ここで自演してるバカのような奴がパワハラとかするんだろう
RadikoもRadikoPadも知らない俺でも調べ始めてからデータ&ログ取得まで数分程度だったのに
なんでこいつは執拗にログを求めてるんだろうな。
そもそもRadikoのDLログなんて、大っぴらに貼るようなもんじゃないだろうに。
>>233
やり方全部書いてあるだろ。自分でやれよ。 そんくらいも出来ないバカなのか ログを貼れないお前の敗北
くやしのぉー
くやしのぉー
いつまでいつものように自演するの
DLログ嫌なのは分かるが
DL以外のログくらい貼ってくれればいいのに
DLログも、マズい部分は伏字に置換してから貼るとか方法あると思うけどなあ
>>239
>>213が言ってる
ffmpeg -i 問題のファイル
と
ffmpeg -i 問題のファイル -c:a copy hoge.m4a
ffmpeg -i hoge.m4a
のログの事だよ >>242
自分で出来ないようなバカの相手なんかなんでするの? 結局このスレってどこに向かってんの?
ログ見るより変換の話ししようぜ
とくに大した書くこともないが
じゃあとりあえず現状の調査結果を元に諸々のレスを。
>>147 >>156
・MP4Boxはそんな変なとこから古いものを落とすんじゃなく、
https://gpac.wp.imt.fr/downloads/
の公式のバイナリをインストールした方がいいと思う。
Program Filesの下のGPACの下にMP4Boxが入るけど、そこにパスが通るから
コマンドプロンプトでMP4Box.exeと指定するだけで実行可能。
OSMO4とかいうのも一緒にインストールされるけど、無駄なものを残しておきたくないなら
MP4Boxと必要ライブラリ(まだ絞り込んでない)だけとってアンインストールすればいいと思う。
(試してないがインストーラから7zipで直接引き出してもいいかも)
・ffmpegでm4a化するのは今のところあまりお勧めできないと思ってるので録音もm4a形式じゃなくaac形式推奨かな。
お勧めできないと思ってる理由は後で書く予定。
・HE-AACをMP4Boxでmuxしてm4aにするなら、
MP4Box.exe -sbr -add heaac.aac -new heaac.m4a
というコマンドにした方が良いと思う。
HE-AACv2をMP4Boxでmuxしてm4aにするなら、
MP4Box.exe -sbr -ps -add hev2aac.aac -new hev2aac.m4a
というコマンドにした方が良いと思う。
https://gpac.wp.imt.fr/mp4box/mp4box-documentation/ >>160
> RadikoはMain ProfileのAAC+SBR+PSだから
色々とググったり過去ログを洗ったりしましたが、Radikoは当初からHEv2(SBR+PS)ではなく、HE(SBR)のようです。
また、RadikoがMainプロファイルで配信されていたのは2010年の試験配信開始あたりから2011年初めあたりまでのようで、
今はLCプロファイルのSBR(HEv2)で配信されているようです。
ということで、>>216で「Mainで配信されてたというのは勘違いじゃね?」と書いたのは私の間違いでした。すみません。
>>157-166
> iTunesて、HE-AACv2ダメだったのか
HE-AACのWikiを見ると、iTunesはv9.2からHEv2に対応したとありますし、
実際にちゃんとHEv2をステレオで聞くこともできるのですが、シークするとモノラルになったりしますし
何やら色々と制約条件もありそうです。上に書いたようにRadikoはHEv2ではなくHEのようですが。 なお、>>202の
「ffmpegで作ったm4aをVLCでシークするともたつく」
の件ですが、radikoのHE-AACに限らず、1時間以上のソースをffmpegで
ffmpeg -i test.wav -c:a aac -profile:a aac_low -b:a **k out.m4a
ffmpeg -i test.wav -c:a libfdk_aac -profile:a aac_low -b:a **k out.m4a
といった形でエンコードした場合でも同様の現象が発生しました。
使ったffmpegはZeranoe版の3.3.3や、自ビルドの「N-86923-g50aeb6e4ed + fdk-aac-0.1.5」です。
(まあこれについては>>146の言うとおりVLCを投げ捨てればいいとは思っているのですが。)
>>245-246の件も含めた現在の調査経過
http://egg.2ch.net/test/read.cgi/software/1429119181/544-545
今のところ、ffmpegに関しての一番の疑問点は、
・aacをm4a化する時にimplicit/explicit signalingを制御するオプションはないのだろうか?
(-c:a libfdk_aacの-signalingや、MP4Boxの-sbr,-ps、L-SMASH muxerのsbrオプションに相当するもの)
という点です。explicit backward compatibleにしておくのが良いらしいのですが、オプションが見つかりません。 >>248
ffmpegに関する話だからこのスレでおk ffmpegで全部できたらいいけど、まだ得意不得意がある感じだよな
ちょっと話がずれてると思うのは、radikopadはffmpegを使ってm4aを吐いて、このffmpeg出力のm4aをVLCでシークするともたつくということ。
つまりこのときすでにffmpegで変換されていてradikoの元のフォーマットではなくなっている可能性がある。このときffmpegが吐いたm4aはどういうフォーマットになっているのか
これをMP4BoxにかけるとVLCでシークしても非常にスムースになった。いったい何が変わったのか
ここが一番のポイント
誰かが書いてるように、MP4box前も後もフォーマットは問題なく単にシークのための情報量が多いか少ないかだけの問題なのか
ffmpegは不親切であまりたくさん情報を付加してなく、MP4Boxは親切にたくさんのシーク情報を付加してくれているってことなのか、
それともそもそもffmpegが吐いた元のファイルがフォーマットがおかしくなっているのか
MP4boxはおかしくなっているヘッダを直す機能があるのでどっちなんだろね
>>246で大事なところを間違えていたので訂正。
× 今はLCプロファイルのSBR(HEv2)で配信されているようです。
○ 今はLCプロファイルのHE(SBR)で配信されているようです。
>>251
RadikoPadはffmpegでm3u8を元にコマ切れのaacを落としていて、それを-c:copyでaacまたはm4aにしてる。
VLCのシークの話は詳しい人が解析でもしてくれない限り「VLC捨てるかMP4Box使え」で終わると思う。 ffmpegでmp4boxで出力したmp4(0:0 video 0:1 Audio1 0:2 audio2)((副音声付きのmp4))をタグ付けすると0:2 audio2が消失するんだけどこれってバグかな…?
Argsは-i input.mp4 -i tag情報 -map_metadata 1 -codec copy output.mp4
MP4にffmpeg使ってtag情報書き込んでるんだけど、音声の2トラック目がmap指定してやらないと無視されてしまう。
手動ならmap指定すればいいけど自動エンコしてるからmap指定したら副音声が無い動画でエラーになるしどうすればいいんだろう。
理想は自動で全てのトラックを読み込んでくれる事なんだけど…。
自動エンコのスクリプトに、
トラック解析の項目を入れればいいじゃん
>>260
ありがとうございます
Map 0を先頭につける事で解決しました。
0:aのaはどういう意味ですか? 電池の正極材って、リチウムか。 リチウムの化合物だよな
どんな化合物だ?
>>261さんは、Example9の全てのビデオと全てのオーディオを指定となったと思われます。 質問いいすか?
DVDを字幕を焼きこんだmp4にエンコードしようとしてます
ffmpeg -analyzeduration 100000k -probesize 100000k -i "concat:VTS_01_1.VOB|VTS_01_2.VOB|VTS_01_3.VOB|VTS_01_4.VOB|VTS_01_5.VOB"
-map 0:1 -map 0:2 -filter_complex "[0:v][0:s]overlay" -vcodec libx264 -acodec aac "D:\output.mp4"
Input #0, mpeg, from 'concat:VTS_01_1.VOB|VTS_01_2.VOB|VTS_01_3.VOB|VTS_01_4.VOB|VTS_01_5.VOB':
Duration: 00:00:10.01, start: 0.280633, bitrate: 3531198 kb/s
Stream #0:0[0x1bf]: Data: dvd_nav_packet
Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top first), 720x480 [SAR 8:9 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:2[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Stream #0:3[0x20]: Subtitle: dvd_subtitle
こうすると字幕の文字の縁取りが黄色くなっちゃうんですけど、これを白にするにはどうすればいいですか?
すんません自己解決しました
ffmpeg -analyzeduration 100000k -probesize 100000k -ifo_palette "VTS_01_0.IFO" -i "concat:VTS_01_1.VOB|VTS_01_2.VOB|VTS_01_3.VOB|VTS_01_4.VOB|VTS_01_5.VOB"
-map 0:1 -map 0:2 -filter_complex "[0:v][0:s]overlay" -vcodec libx264 -acodec aac "D:\output.mp4"
デフラグかけたらnvencが5xから6xまで上がるとは思わなんだ
現行のffmpegで、MPEG-2 AACを出力する方法はある?
native aac encoder、libfdk_aac ともに、MPEG-4 AACになっちゃう。
nativeではプロファイルをmpeg2_aac_lowにすればいいはずなんだけど、
ヘッダはMPEG-4 AACのままなんだよねぇ。
ヘッダをバイナリレベルで書き換えればいけるけど、毎回やってられないし。
libfdk_aacはそもそもオプションがない。
今はなきlibvo_aacencは出来たんだけどな。
普通に考えて古い仕様のに書き換えたら問題でるんじゃないの?
仮に出ないんだったらますます書き換える意味がわからんし
MPEG-4 AAC で Perceptual Noise Substitution を使わなければ、
MPEG-2 AAC とデーターに違いはなく、
単にヘッダが違うだけなんだよ。
で、native aac encoder の出力する MPEG-2 AAC相当のMPEG-4 AACのデータでは
MPEG-2 AAC(ヘッダ込み)を要求する機器では、音声を認識しないので、
ヘッダ書き換えが必要になる。
バグ報告しろよ
どうせ、誰かにやってもらおうとしてるんだろうけど
>>273
∧_∧
⊂≡⊂=(・ω・ ) 嫌どす
⊂=⊂≡ ⊂)
ババババ( \
∪ ̄\_) VMAF調べて出てきた記事の200kbps以下でも高画質視聴ってnetflixのエンコード方法のほうが気になってしまった
そんなん出来んのか
ああ小画面なら多少画質低くてもいけそうだな
netflixってVP9だったと思うけどgoogleと協力してやってんのかな
面白そうではあるが手軽に利用出来るものじゃなさそうだな
学習モデルがどうとか書いてあるしややこしそうだ
再エンコードなしのコンテナ入れ替えに利用しているのですが、
flv→mkv
ts→mp4 (-bsf:a aac_adtstoasc)
などは、エラーなくできるものの
m2ts→mkvが上手くいきません。
ffmpeg -i in.m2ts -vcodec copy -acodec copy out.mkv
とやると、すぐコマンドプロンプトが閉じてしまいます。
一応、1KBのout.mkvファイルができあがります…
in.m2tsファイルは16GBで、Aviutlでの編集や、MPC-BEでは再生できます。
ffmpegのバージョンは3.3.3と3.3.1、64bit zeranoeのビルドです。
mplsファイルもあるので、本当はチャプター付きでmkvにしたかったのですが、
チャプターなしのコンテナ入れ替えにも失敗…
コマンドプロンプトに入力した内容が間違っておりますでしょうか?
お力をお貸しください
(ペコリ
>>281
最初に見つかった映像ストリームだけ処理してる可能性もあると思うので念のため-map 0:v -map 0:aを付けてみるとか >>281
ffmpegのログをテキストファイルにしてどこかにアップするかpaste.binあたりに貼りなよ。 皆様、レスありがとうございます。
>>282
フォーマット : BDAV、フォーマット/情報: Blu-ray Video
ビデオ ID : 4113 (0x1011)、ID : 1 (0x1)、フォーマット : AVC、フォーマット/情報: Advanced Video Codec、プロファイル : [email protected]、コーデック ID : 27
オーディオ ID : 4352 (0x1100)、ID : 1 (0x1)、フォーマット : PCM、Endianness : Big、Sign : Signed、Muxing モード : Blu-ray、コーデック ID : 128
です。
>>283
試してみました
同じ感じでダメでした
>>284
ログを出力する方法がわかりませんでした…
何かしらエラーが出てるのは一瞬見えたんですが、すぐにコマンドプロンプトが閉じてしまって( ;∀;)
で、m2tsからm2tsというのを試してみたところ、これはエラーなく動いたのですが、
映像ありの音声なしというファイルができてしまいました(ファイルサイズは5%ほど増加) >>285
どんなバッチ組んでるのか知らんが
ffmpeg -i in.m2ts -vcodec copy -acodec copy out.mkv 2> outlog.txt
pause
って書いとけばすぐにプロンプトが閉じることも無いし、outlog.txtにログが出力されるからそれを出せばいいよ。
そもそもログが見れないとか言うくらいならバッチ使うんじゃなくて
コマンドプロンプトから直接コマンド入力して試すとかできるだろう・・・ >>285
ログの出力はこう
ffmpeg -i in.m2ts -vcodec copy -acodec copy out.mkv >log.txt 2>&1 というより、mkvやm2tsにLPCMを入れられないということじゃないのか?
LPCMのマルチチャネルで不具合出るやつかな?
FLACに変換してやれば行けそうだけど
レスありがとうございます。教えていただいた方法でエラー内容を確認できました。
pauseでコマンドプロンプトが閉じないのでありがたいです。
末尾の部分だけ
[matroska @ 0000000002ce00a0] No wav codec tag found for codec pcm_bluray
av_interleaved_write_frame(): Invalid argument
Error writing trailer of out.mkv: Invalid argument
frame= 3 fps=0.0 q=-1.0 Lsize= 0kB time=00:00:00.00 bitrate=N/A speed= 0x
video:1kB audio:1kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Conversion failed!
皆様のご指摘の通り、音声の形式にコンテナが対応していないのかもという気がしてきました。
mkvだったらわりと何でも行けると思ってました
(´・ω・`)
>>292
ffmpeg -report -i in.m2ts -c copy out.mkv
-report でlogの.txtファイル作ってくれます。
。。。というのでも大丈夫かと思います。 >>292
https://forum.doom9.org/showthread.php?t=174718
似たような話見つけた
> pcm_bluray should only ever be put in Blu-ray-style m2ts files,
> Matroska has no format mapping for it anyway.
> pcm_blurayは、Blu-ray形式m2ts専用で、Matroskaにはフォーマットのマッピングがない
ここでは解決策としてpcm_s24leで出力することを薦めてる -max_error_rate ratio of errors (0.0: no errors, 1.0: 100% error maximum error rate
このオプションを解説できる人がいらっしゃいましたら、お願いします。
「error rate」ってどういう事でしょうか?
設定したエラー比率になったら全体が失敗ってことにするんやろ
自分でstatic buildしたffmpegで(OSはlinux debian stretchです)でvp9_vaapiでglobal quality設定でエンコードする時、
libopusを音声コーデックに使用しようとすると(libopus-devのバージョンは1.2 alpha2.1です)quality based encoding is
not supportedと出てエンコードできないのですが、最新版のlibopus-devでもquality-based encodingはサポートされ
ていないのでしょうか?
global_quality:vとすれば音声がopusでもエンコードできたので、問題ないと言えば問題ないのですが、できれば音声
もquality_based encodingしたいです。
kibopusを最新版の1.2.1にしてもエラーが出ました。当分は-global_quality:v
ffmpeg apiを使ってソフトを作ろうと思ってるんだけど
そのソフトをそのまま配布したら特許侵害になっちゃうよね?
ソースコードのまま配布したら特許侵害にはならないだろうけど
大抵の人はビルド出来ないと思うので
ffmpegは共有ライブラリにして共有ライブラリ以外のソフトはバイナリで配布して
avcodec.dllとかの共有ライブラリを利用者にzeranoe ffmpegからダウンロードして貰う形なら特許侵害にならない?
HEVCとH264とAACでも、
この方法なら特許違反にはならないのでしょうか?
そういう諸問題解決するためにZERANOEから引っ張ってこいとやるよりも
VLCインストールしてくださいってのがよくある手法じゃないかね
VLCのインストールディレクトリを参照・タダ乗りと・・・
メジャーなAVC, HEVC, AAC, DOLBY AUDIO, DTS AUDIOだとDOLBY社が警告よくしてくるらしい
この話題定期的にループしてるが、著作権と特許権が混同されて語られてるんちゃうか?
ffmpeg事態の著作権は開放されてるから、ソースだろうとバイナリだろうと配布自由。
ffmpegが実現してるコーデック機能に対しては、特許権を主張してる会社が在る。
特許権を主張してる会社からすれば、配布方法がソースかバイナリかは無関係で
そのコーデックが機能するソフト利用者に、特許利用料の支払い義務が生じるとの考え。
但し、個々の利用者に請求するのは非効率で非現実的なので、配布者に特許利用料を
代わりに弁済するように求める可能性が有る・・・て事だと俺は理解してるが・・・
違うのか?
h265がApache License 2.0だったらBPGも広まってたんだがなあ
>>307
wikipediaのxvidのページに
https://ja.m.wikipedia.org/wiki/Xvid
MPEG-4特許のライセンスを得ておらず、
開発プロジェクトではソースコードのみの配布とすることでライセンス問題を回避している。
但し、日本においては、特許法第68条により、
“業として”バイナリの配布・利用を行わない限り(つまり個人の私的利用などでは)特許権侵害には当たらない。
って書いてあるからソースコードの配布は問題ないんじゃない? >>310
一理ある主張だけど、それは匿名のwiki編集者が勝手に主張してる根拠だから・・・
「業として」なんて曖昧な根拠は、特許権主張会社には無意味だと思うんだよね・・・
結局、実際に判例を積み重ねないと、何が無問題かなんて言えないし・・・
特許権主張会社の判断基準は、手間を掛けて得られる見返り次第ちゃうかな?
つまり、ターゲットの支払い能力。
儲けになるなら提訴するのが、彼等のビジネスモデル。
逆に言えば、儲けにならず、見せしめ的にも無価値な者は、彼等のターゲットになる
可能性は極めて低いとも言えるけどね・・・ 結局の所、ソースコードのみ配布が特許侵害で訴えられた例はないのでソースコードのみの配布はOK
バイナリでもciscoのopenh264のように
avcodec.dllを利用者にダウンロードさせる形にすればOK
って結論でOK?
>>293 >>294
レスが遅くなってすみません。ありがとうございます。
自分もflacで試したらできました。
.mplsからチャプターの時間を取得して、チャプター付きのmkvを作るというのが目標でしたが今ちょっと断念してます。 自ビルドに挑戦中なのですが
--extra-ldflags, --extra-ldexeflags, --extra-ldlibflags,--extra-libs
の違いはなんですか?
--enable-openssl --enable-gnutls
の両方を指定したらどっちが使われますか?おすすめはどっちですか?
そーゆーことをマニュアルを読んで、理解して、自分で設定するのが自ビルドなんだが・・
わからないなら、知った風なレスしなければいいのに
>>315は読でいないのがバレバレ 大先生ばっかでソースソース騒ぐだけで動く奴居ないし
>>311
>「業として」なんて曖昧な根拠は、特許権主張会社には無意味だと思うんだよね・・・
「業として」というのは営利目的とか事業としてとかいうような意味じゃなくて
法としては「継続して」というような意味
つまり継続して公開されたWebページに置いたりするのは「業として」に含まれるという解釈だったはず >>320
業務の内容は、法令によって違うから、何ともいえない。 ffmpeg, x264がアウトならネット上の動画はほぼアウトで混迷期に逆戻り
というより、公開停止の仮処分申請がされて通ってるだろ
ffmpegはフロントエンドに過ぎないからアウトになるとしたらlibx265とかだろう
>>322
法律用語で「業として」と「業務」とは別物だよ zeranoeでmacos向配布が始まってた
3.3.4もきたよ
version 3.4:
- deflicker video filter
- doubleweave video filter
- lumakey video filter
- pixscope video filter
- oscilloscope video filter
- config.log and other configuration files moved into ffbuild/ directory
- update cuvid/nvenc headers to Video Codec SDK 8.0.14
- afir audio filter
- scale_cuda CUDA based video scale filter
- librsvg support for svg rasterization
- crossfeed audio filter
- spec compliant VP9 muxing support in MP4
- remove the libnut muxer/demuxer wrappers
- remove the libschroedinger encoder/decoder wrappers
- surround audio filter
- sofalizer filter switched to libmysofa
- Gremlin Digital Video demuxer and decoder
- headphone audio filter
- superequalizer audio filter
- roberts video filter
- The x86 assembler default switched from yasm to nasm, pass
--x86asmexe=yasm to configure to restore the old behavior.
- additional frame format support for Interplay MVE movies
- support for decoding through D3D11VA in ffmpeg
- limiter video filter
- libvmaf video filter
- Dolby E decoder and SMPTE 337M demuxer
- unpremultiply video filter
- tlut2 video filter
- floodfill video filter
- pseudocolor video filter
- raw G.726 muxer and demuxer, left- and right-justified
- NewTek NDI input/output device
- Some video filters with several inputs now use a common set of options:
blend, libvmaf, lut3d, overlay, psnr, ssim.
They must always be used by name.
- FITS demuxer and decoder
- FITS muxer and encoder
- add --disable-autodetect build switch
- drop deprecated qtkit input device (use avfoundation instead)
- despill video filter
- haas audio filter
- SUP/PGS subtitle muxer
- convolve video filter
- VP9 tile threading support
- KMS screen grabber
- CUDA thumbnail filter
- V4L2 mem2mem HW assisted codecs
- Rockchip MPP hardware decoding
- vmafmotion video filter
- use MIME type "G726" for little-endian G.726, "AAL2-G726" for big-endian G.726
>>330
コピペするくらいならリリースノートへのリンク貼れ無能 >>332
クソレスするくらいならお前がリリースノートへのリンク貼れ無能 無能にありがちだけど、リンク貼らずにコピペした方が文字数稼げるし仕事した気になるよねw
どうでもいい事に難癖付けるしか能の無い大先生乙
ちゃんと働けよ
そろそろnvenc+h265+2passまとめて出来るようになったらいいなあ
Frei0r
libbs2b
libcaca
Game Music Emu
GSM
iLBC
Modplug-XMMS
OpenCORE AMR
OpenH264
RTMPDump
Speex
VisualOn AMR-WB
Vorbis
XAVS
Xvid
がzeranoe ffmpegから無くなった
XvidとVorbisは付けて欲しいな
ffmpegについて、ゼロから勉強したいんだが、本でもなんでもいいから参考になるようなモノあるかな?
俺もおまえらみたいに、H265でエンコードしたり、自分の思い通りの事を出来るようになりたいよ
ここで質問するにはあまりにも初歩的すぎるし・・・
なにかアドバイスあったらよろしくお願いします
思い通りのことしたかったらコンパイルからやらんといかんからな>ffmpeg
見た感じそんなに難しい事したい訳じゃなさそうだし検索してブログか何かの記事読めばいいんじゃないか
もちろん公式のマニュアルも機械翻訳でいいから読んでおくといい
あとはひたすらbatなり書いて実際に動かしてみることやね
>>346
バッチファイルとか、全然それ以前の知識の無さだよ。。
たとえば、こんな
ffmpeg -c copy "c:\movie.ts" -i "URL"
みたいな、ネット上の動画を拾う簡単な構文?(←この呼び方すらわからない)の意味すらわからない・・・
-cとか、-iとか一体何のことなのかわからないままに走らせてるって感じ
Linuxのコマンドリファレンスみたいなのから始めれば良いのかな? >>347
い、今はオプション選択してあとはオートコンパイルしてくれるツールとかあるから・・・(震え声 バージョンでオプションがバンバン変わるし、理解しにくいオプションもあるし、地道に試していくしかない
数日前にエバーミートのバイナリ版入れたらffmpegの公式ページ開く
たびに「URGENT!ナンタラカンタラ電話番号入力しろ!」みたいなのが
出るようになったんだけどマルウェアにやられたかな?OSクリーンイン
ストールしても出るんだけど、そのffmpegで再エンコードした動画を
入れてるせいか?お前らも出てるか、特にバイナリ版インストールした
ことない香具師に聞きたい。
それは米連邦通信委員会(FCC)による「ネットの中立性」の規制撤廃の動きに対しての抗議活動みたいね
>>351
>>352
教えてくれてありがとうございます!いろいろ弄ってみます
-c -i -b -y -i -f 、、、なんなんだこいつらは・・・ >>357
ごめんなさい・・・
‘-y’ 出力ファイルを上書きします。
とか、ちゃんと書いてあるんだね AvisynthのConvertToY8()でモノクロにしたavsファイルをffplayで再生したり
ffmpeg.exe -i Y8.avs -vcodec libx264 -pix_fmt yuv420p -an YUV420.mp4
としてエンコしたりすると、輝度レンジが圧縮されて低コントラストになってしまうんだけど、バグなのかな?
Y8.avs のスクリプトも書いてくれないと
yuvj420p にすればフルレンジにはなるが
>>362
avsはこんな感じ。リミテッドレンジYUVをY8にしてるだけ。
https://pastebin.com/sHtqT3GW
avs: リミテッドレンジのYV24をY8に。黒=Y(16)、白=Y(235)
↓
ffmpeg:入力: grayにリミテッドレンジのY値をそのまま格納している?
↓
ffmpeg:変換: gray→yuv420p
※ffmpegのgrayは黒0、白255を前提にしている?(gray→rgb24変換だとgrayの値がそのまま出てくる)
※そのためgray→yuv420p変換をするとフルレンジ→リミテッドレンジ変換が起きてしまう。
avsからの流れで見ると、余分なレンジ圧縮がされてしまうことになる。
こんな感じになってるっぽい。
-pix_fmt yuvj420pにすればgrayがフルレンジのままYに渡るんだけど、
同時にx264のfullrangeフラグも立つので結果的に正しく見れない。
ちなみにx264.exeにY8のavsを直接渡した場合、libswscaleでgray→yuv420pを行うので、同じ問題が起きる。
avs内でConvertToYV12()をすれば回避できる話ではあるんだけど、
Y8のavsをx264で4:2:0エンコしたい場合、どうするのが正解なのだろうかと。 というかそもそもなんでYUVなY8を、grayにそのままマッピングしてるんだろう。
ffmpegの色関係のフィルターのオプションやswrでグレースケールにすればいいでないの?
ffplayの音が出ない
WASAPI can't initialize audio client
fdk-aac 絡みのことを調べていたら >>163 のレスを曲解して
発狂してる奴がいて草 発狂してないけど、いきなりそんなこと言い出してどうした?
ファイル結合でエラーが発生してしまい原因が不明のためアドバイスください
実行コマンド
ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex "concat=n=2:v=1:a=1" output.mp4
エラー
Input link in1:v0 parameters (size 640x1138, SAR 0:1) do not match the corresponding output link in0:v0 parameters (640x1136, SAR 0:1)
[Parsed_concat_0 @ 0000000002b78ac0] Failed to configure output pad on Parsed_concat_0Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #1:1
訳
入力リンクin1:v0パラメータ(サイズ640x1138、SAR 0:1)が対応する出力リンクin0:v0パラメータ(640x1136、SAR 0:1)
[Parsed_concat_0 @ 0000000002b78ac0] Parsed_coで出力パッドを設定できませんでしたncat_0
フィルタを再初期化する際にエラーが発生しました。
フレームをフィルタネットワークに挿入できませんでした:引数が無効です
ストリーム#1:1のデコード済みデータを処理中にエラーが発生しました
ログ上で差分があったパラメータは以下です
1.mp4
Duration: 00:00:04.83, start: 0.000000, bitrate: 3138 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/unknown/unknown), 640x1136, 2922 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc (default)
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 246 kb/s (default)
2.mp4
Duration: 00:00:05.76, start: 0.000000, bitrate: 5718 kb/s
Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/unknown/unknown), 640x1138, 5524 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc (default)
Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 243 kb/s (default)
>>372
【ffmpeg】動画・音声を連結する concat の使い方 : ニコニコ動画研究所
ってサイト見て思ったんだけど解像度違うとエラー起きるってのが原因かね?
scale使えば繋げるらしい >>373
>>374
リサイズしたら結合できました
ありがとうございます
全部同じサイズだと思い込んでいたので差分まで出してもそこに気付きませんでした、、、お恥ずかしい反省 >>372です
たびたびすいません
複数のファイルを結合した際に別のエラーが発生してしまいました
動画のサイズは一致していることは確認済みです
確認したほうがよい項目などあればアドバイスお願いします
エラー
Cannot find a matching stream for unlabeled input pad 11 on filter Parsed_concat_0
訳
フィルターParsed_concatで、ラベルなしの入力パッド11に一致するストリームを見つけることができません >>379
エラーメッセージでも検索して模索しましたが解決には至らずでした
もう少しパラメータなど変えて試行錯誤してみます
ご迷惑おかけしました >>377
悔しいのう無能www
自分でmakeできるようになってから書き込めよボクwwwwwwwwwwww >>382
あーenable-nonfreeのビルドで快適すぎるわー
ネットでバイナリ漁ってろよ乞食wwwwwwwwwwww
配布は明日かなー明後日かなーwww
めぐんでやってもいいぞ乞食wwwwwwwwwwwwwwww スレで痛い子を見下して罵倒するだけでいい気分になれるなんて、両方とも可哀相に・・・
よほど恵まれない生活をしてるんだな・・・
>>385
まさにお前に事だなw
書いてる途中で気づけよwwwwwwwwwwwww >>384
いらないレスするな
せっかくの香ばしさななくなって
いじりがいがなくなってしまう >>338と>>340を見て、zeranoe版ビルドの3.3.4からごっそり機能削除されたので、慌てて3.3.3の
アーカイブを確保した。
誰かMinGWかCygwinで全部入りのビルドをした人いるかな。 >>391
libcaca: 何気によく使ってる。
libgme: スーファミエミュで吸い出したBGM用。
libgsm: 未だにGSMコーデックのファイルを所持。
libmodplug: Tracker系メディアファイル用。
libspeex: 未だにSpeexコーデックのOGGファイルを所持。
今まで処理できたコーデック・コンテナ形式が処理できなくなるのは不便。
ってか、万能アプリであることを謳っているffmpegから機能がなくなること自体気持ち悪い。 ./configureのオプションが
--enable-gpl
--enable-version3
--enable-avisynth
--enable-avresample
--enable-cross-compile
--enable-libfdk-aac
--enable-nonfree
--enable-libfreetype
--enable-libmp3lame
--enable-libopencore-amrnb
--enable-libopencore-amrwb
--enable-libopenjpeg
--enable-librtmp
--enable-libspeex
--enable-libtheora
--enable-libvo-amrwbenc
--enable-libvorbis
--enable-libvpx
--enable-libxvid
--enable-libx264
--enable-libx265
--enable-nvenc
となってるが、これでlibcacaなどのライブラリは入ってるのかな。
>>396
やっぱり「全部入り」のビルドにはサポートする全ライブラリを予めビルドする必要があるってことか。
あるライブラリをビルドしようとしたら依存する別のライブラリを予めビルドしておかなければ
ならなかったりして、全部のライブラリをビルドし終わるまでの過程がかなり大変そう。 >>397
最初は面倒なんだけどね、よほど頻繁に更新されるライブラリ以外は
一度コンパイルさえしておけばあとはffmpegのバージョンが上がっても
既にコンパイルしたものをマージすればいいだけだから楽なんよ configureのヘルプ見たら、サポートするライブラリの数が107個もあった。
果たして全部ビルドできるかな。また、アップデートについていけるかな。
x264、x265スレでも自分との会話を楽しんでる人いたな
理解できんけど
-loglevel error -i %audio -i %video -acodec copy -vcodec copy %output
っていう一文?が何なのか解読しようと思って、勉強したいんだが
https://trac.ffmpeg.org/
や、>>4を読んだら、いったいこの一文が何をやってるのか分かるようになる? >>403
アドバイスありがとう
お前らのようにffmepgを使いこなすには、まだまだ時間がかかりそうだ・・・
コマンドライン?で動かすLinuxってのも勉強してみようかな Linuxを覚えたからと言ってffmpegが出来るようになるわけではないぞw
LinuxはLinuxOSを操作するためにコマンドを使うだけの話。
ただOSのコマンド打ちたいだけなら、Windowsのコマンドプロンプトでも似たようなもんだ。
ffmpegだのエンコーダーだののソフトウェア側のコマンドっていうのは、プログラム起動時にメイン関数に渡す引数の指定のことだ。
ソフトウェアによって渡す引数は全然違うから、結局のところ読んだり使ったり試行錯誤しながら覚えるしかない。
>>405
ふむふむ、、
ちなみに、
-loglevel error -i %input -q:a 0 %output
は、MP3としてファイルを保存する(MP3 Conversionって書いてある)場合っぽいFFmpeg Commands なんだよね。。
YouTube Video and Audio Downloader (Dev Edt.)って拡張機能の、FFmpegをつかった部分のトコなんだ >>407
CLI難しそうッス・・・しかし、GUIの世界から一歩踏み出すのを恐れていただけかもしれないッス・・・ それまで散々CLIで使い慣れてたハズなのに1年ほど使わない期間出来たらすごい忘れます(実体験w
ヘルプコマンド叩いて確認するとこからやり直し
CLIというかバッチファイルをかなり使い込んでていつの間にか何でもかんでもCLIで
出来ないと気が済まなくなってる....
まぁ、暗記して毎回打ち込むようなものでは無いよね。
「こういう効果のなんとかっていうコマンドがあったな。名前なんだっけ」->スクリプトファイルに書き込み
で良いと思う。
細かいとこ忘れてしまって、ドキュメントを調べながら使うというのは、
コマンドオプションにかぎらず、プログラミングでもおんなじ感じだよ。
お作法もみんな違うしね。
>>408
まず、これから始めような
ffmpeg -h full >ffmpegHelp.txt >>408
ffmpegのもそうだけど、エンコードbatなどのサンプルを適当に見てみたり
cmdのお約束みたいなのも把握しとくと幅が広がるよ PAL⇒NTSC 変換はどのようにしたらよかですか?
元ソースはMPEG2 25fps インターレース 解像度720*576なので解像度をNTSC規格(720*480)に変更しつつ
出力は23.976(29.97) 3:2プルダウン もしくは、29.97fps インターレースにしたいとです。
出力コーデックはh.264 [email protected] max15Mbps crf 20 vbv 3000k -target film-dvd
-target ntsc-dvd -ilme
のあとにオプション上書きでいいんでないの?
聞き違いかも知れんけどおっさん達が昔社員旅行でハワイ行って勇気を出して洋物のVHSをみんなで買ったけどPALだかの方式違いで再生機がなくてがっかりしたって話で盛り上がってた気がする。
>>426
-ilme ←このオプションはそんなのないと弾かれるのだけれど、どういうオプションなの? >>428
聞く前にググる癖をつけたほうがいいんじゃね >>429
答えられないなら黙ってればいいんじゃね 答えが出てくるからググれと言ってるのに、これだから煽るだけの無能は・・・
>>429
- つけて検索してたから出てこなかったのよ・・・orz
インタレ保持でいいのかな?
-vf yadif=1,scale=720:480,tinterlace=4 -target ntsc-dvd -flags +ilme+ildct dvd.mpg $ export VIDEO_FORMAT=NTSC
-ilme の代わりでインタレ保持するのは↑な感じでよろしい?
もしくは、インターレース解除しつつ3:2プルダウンした方がよろしい? ハードウェアエンコーダで画質が変わることがあるってのが不思議なんだけど。
QSVはいまいちとかいうじゃん。
それってlibx264とかのアルゴリズムの一部をハードに置き換えて高速化してるわけじゃないってことなのかな?
そら -ilme なんてやったら ilme を省くだもんなw
ファイル名を出力?するときに、動画の解像度をカッコでくくりたいんだが、以下の書き方だと、ハイフンでくくられてしまうんだ
[file_name] "("[video_resolution]")".[extension]
だと
---360p---
みたいな感じになってしまう
ダブルコーテーションを使わないと、
-360p-
単純な文字として表示させる時は、ダブルコーテーション、、かなと思ったんだが、そうでもないみたい。。。
なんて書くのが正しいんだ?
そういえばWSLのおかげでshでffmpeg使えるようになったんだな
bat使いにくいし移行させるか
ffmpeg内蔵のh264エンコーダーは無いからx264
>>439
libx264とx264の話ならオプション一緒なら変わらないよ >>437
基本的なコマンドだけでいいならbusyboxで十分じゃね? zeranoeのバイナリvmafmotion使えないのか
vmafmotionを使ったことある人いるかわからないけど使い方は、エンコード後のvmafmotion/エンコード前のvmafmotionで合ってるよね?
これで大体SSIMと似たような数値になる気がするので合ってると思うが
>>444
最近取り込まれたのはlibvmafへのインタフェースだよね。vmafmotionはしばらく前から単体で使えていた
大体SSIMと似たような数値と言っているから、実際にはVMAFモーションスコアでなくてVMAFスコアなのかな?
しかし、vmafとffmpegがいずれも最新だとvf_libvmaf.cでコンパイルエラーが出るな。APIの変更に追い付いてないようだ
ちょっといじって通るようになったけど
それにしてもなかなか使いどころが難しいな。特にソースがインターレースだと。手許の環境では数fpsしか速度が出ないし ググったり関連リンク読んだりしてみた感じでは、vmafmotionというのは
・動画の時間的な特性(動きや変化の激しさみたいなもの)を表す指標
・最終的なVMAFスコアを導くための要素の1つ(他の要素としてVIF,ADMなどがある)
であって、それだけで画質指標になるものではないと思うんだけど、どうなんだろ。
画質評価の指標として使うのはlibvmafで求められる最終的なVMAFスコアだと思うのだが・・・。
ニコラボさんの記事だと
> 使い方は先に元動画の vmaf モーションスコアを計算し、
> 次にエンコードした動画の vmaf モーションスコアを計算し何割減ったかを調べる。
とあるけど、この計算結果が一体なにを示すものなのか、
またこの説明が何に基づいたものなのかがよくわからなかった。
(ソースを見たのかもしれんが、さすがにそこまでは読めない)
>>445-446
本当はlibvmafの方を使いたいんだけどねえビルド方法が分からないんだよね 動画ファイルから音声データを無劣化で抽出したい
音声がどんなcodecなのか事前に調べておけばそれを指定して問題なく抽出できるけど、
そこも含めて自動化して勝手に拡張子を決定して抽出させられる?
ああ、拡張子はコーデックではなくてコンテナの指定なのか
だからといってmkaはあんまりなので、とりあえずaacにしとこう
無劣化抽出したいと言いつつaacにするのか・・・(困惑)
あとのことを考えないなら
全部flacにすれば劣化することはない
エンコードせずにそのままコピーして適当なコンテナに放り込むのが一番では?
mediainfoでコーデック調べて拡張子自動選択するbat書いてるわ
やっぱりそうなるのか
そうしてる人がいるという時点で、ffmpegにその機能は無いと判ったので、
適当な妥協案で済ますことにする
何かに決め打ちしてしまうとか、えこでこツール使うとか
適当に調べたら、殆どの場合はAACが入ってる
でも .aac は取り扱いが不便なので、m4aが良さそう
でも m4aで出力させるとやたら時間がかかる
(aacなら一瞬で、別ツールでaac->m4a変換させるのもすぐなのに)
mkaならとりあえず出力はできるけど、
スマホに転送するとアプリが対応してない
という感じで、AACに決め打ちしても便利な解決策が無い
無劣化抽出はcopyすればいいんだよね
ならあとはスクリプト書くだけでしょ
info出力してstreamがaudioの部分を解析してcodecで拡張子決めてmapで出力すればOK、だよね?
元はmp4なので、その音声部分だけのコンテナはm4aが自然な筈
なのにcopyでm4aに出させようとすると20xくらいの速度で処理を始めて、
2時間のファイルに6分くらいかかる
こうなるのがよく判らない
再エンコしてるのかな?
出来てるm4aがほんとにm4aならわからないけど
実は中身がmp4だっていうならmap指定すれば解決
確かにmap指定するとすぐ終わる
aacに出力させた時は自動でストリームを選択してるんだから、
m4aの時もやってくれればいいのに
1920かける1080の縦が短かったりするのがなんとおりかあるときに黒帯つけて720×480にリサイズかけるのってbashとかで計算してやらないと無理?
>>460
オーディオだけでなくビデオも読み込んでいるからだよ。
map指定をしないで -vn を足してごらん。
-c:a copy -vn -map 0:a
でやってたけど、そっちの方が良さそう
拡張子aacってエレメンタルストリームなんだっけ?
>>464
そう。
欲しいoutputは720*480に固定だけどinputは幅も高さもまちまちみたいな場合。 入力解像度が 1920x1080 を超えないのならこれでよさそう
映像は中央に配置してる
ffmpeg -i in -vf pad=1920:1080:(in_w-out_w)/2:(in_h-out_h)/2,scale=720:480,setdar=16/9 out
ffmpegがxpのサポートを終了
サポートされるosはvistaからになるみたい
今更xpで動かそうとするやつなんて居ないだろうきっと
あべちんさんのバイナリはXP対応
あと、海外の有名どころで対応するのがある
で、XPでも使ってるわ
XPでffmpegとか、使えるバージョンを残しとけばいいだけじゃんw
横からだけど再エンコとかは外と繋がってない余剰品のXP使ったりしてるな
ffmpegでmpeg2-tsをmp4に変換する時字幕をそのままコピーするにはどう指定したらいいんでしょうか?
Ffmpeg -i 雌ヤギ激烈立ちバック中出し.mp4 -字幕 そのままコピー [NHK]視点・論点20171123.mkv
>>479
ffmpeg以外の無料/有料ソフトでもいいので方法を教えて下さい><
ただ、一発でやりたいです
幾つもの工程に分けてまず字幕を分離して云々…てのは嫌です つまり有料でもいいから雌ヤギとバックで一発やりたいと・・・
>>482
ソフト的に一発ってのは知る限りでないな。
だいたいこの手順になるはず。
caption2accで字幕ファイルを分離
生TSから狙いの動画ストリームを分離
mp4生成
字幕合成
シェルなりバッチなりで自動化するのはそんなに難しくないよ。 >>484
ありがとうございます
バッチで自動化、なるほどです
しかしffmpeg等のフロントエンドに、字幕を一発自動コピーするものが出て欲しいものです
D&Dで多数ファイルを一括投入して全部変換させたい
字幕ストリームってついててもサイズ的には誤差みたいな小ささですよね? tbrが60になってたらbwdifみたいなのかければ60fpsなるってことでいいの?
抽出したaacのトータル時間が実際と違うのは何故?
ffmpegがNVencに引き続き、AMDのVCEに対応したと聞いたから早速
自分でもVCE対応ffmpegをビルドてみようと思った。
ffmpegのビルド環境は
http://mylabo.webcrow.jp/ffmpeg.php
のを使わせてもらった。(中身はMSYS+MinGWだったかな)
http://nico-lab.net/installing_amd-vce_with_ffmpeg/
AMF(Advanced Media Framework) SDKをダウンロードしてきて
amf/public/include の中身を、C:\MSYS\local\x86_64\include\AMFにコピー。
上記のサイトによるとffmpegのconfigureではAMFを自動認識するとのことなので
何も考えずに普段通りに./configureかけてビルドしてみたけど
-v:c h264_amf も -v:c hevc_amf もどちらもunknown optionとか言われて使えない。
何かビルド方法に間違いでもあったかな?
ちなみにグラボはAMDのR9 290。 割り込み質問失礼します。ISDB向けFFmpeg(https://github.com/0p1pp1/FFmpeg.git)で困っています。
以下のコマンドで字幕付きで一応は変換できたんですが、実際はvlcで再生しても字幕が無いと言われます。
ffmpeg -ss 10 -c:s isdbsub \
-vaapi_device /dev/dri/renderD128 -hwaccel vaapi -hwaccel_output_format vaapi -threads 6 \
-y -i "2032_20180213053600.ts" -analyzeduration 30M -probesize 300M -r 15000/1001 \
-filter_complex "format=nv12|vaapi,hwupload,deinterlace_vaapi,scale_vaapi=w=152:h=-1" \
-c:v h264_vaapi -qp 27 -map s:0 -scodec ass -ass_raw_mode 1 -an \
-movflags faststart \
-f mpegts "2032_20180213053600.mp4"
...snip...
video:1855kB audio:0kB subtitle:32kB other streams:0kB global headers:0kB muxing overhead: 28.618532%
※テスト用なので音声は無くしています。
$ ffprobe "2032_20180213053600.mp4"
ffprobe version n3.3-26-gb68f0b9b3b Copyright (c) 2007-2017 the FFmpeg developers
...snip...
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 152x102 [SAR 32:27 DAR 2432:1377], 14.99 fps, 14.99 tbr, 90k tbn, 29.97 tbc
Stream #0:1[0x101]: Data: bin_data ([6][0][0][0] / 0x0006)
Unsupported codec with id 100359 for input stream 1
↑Stream #0:1がDataとなっています。
詳しい方ヒントをお願いします。 >>493
感謝!
libassは考慮していませんでした。早速以下の通りに導入。
■ffmpeg入れ直し
$ ./configure --enable-libass --extra-ldflags="-L/usr/local/lib"
■共有ライブラリ参照
$ sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/usr-local-lib.conf'
$ ldconfig -v
$ ldd /usr/local/bin/ffmpeg | grep libass
libass.so.9 => /usr/local/lib/libass.so.9 (0x00007f17042ec000)
■ffmpeg実行中に動作確認
$ sudo lsof -c ffmpeg |grep libass
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
ffmpeg 11375 XXXX mem REG 253,0 913872 1966566 /usr/local/lib/libass.so.9.0.1
しかし、残念ながら結果は変わらず。。。
試しにコピーモードで変換しても、subtitlesがdataに変わってしまう。 ノイズがひどい動画のデノイズをしようとニコラボさんを参考に
ffplay -i input -vf "split=3[0][1][2];[0]sobel=1,lutyuv=255-gt(val¥,250)*255:128:128[0a];[1]hqdn3d[1a];[1a][0a]alphamerge[10];[2][10]overlay"
としてみるも、エッジ抽出でノイズを拾ってしまいます
>495
-vn -an -map s:0 -scodec ass -ass_raw_mode 1 -f data output.ass
これで字幕だけ出力できるかどうか
>496
エッジ保持しながらデノイズするなら unsharp または smartblur を使うのが手軽
>>498
ありがとうございます!
抽出はできました。ファイルの中身もOKです。
ということは、1コマンドで字幕付きで直接アウトプットする過程でダメになってしまうんですね。。。
$ ffmpeg -i 2040_20180214072600.ts -vn -an -map s:0 -scodec ass -ass_raw_mode 1 -f data output.ass
…snip…
video:0kB audio:0kB subtitle:9kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
$ ffprobe output.ass
ffprobe version n3.3-26-gb68f0b9b3b Copyright (c) 2007-2017 the FFmpeg developers
built with gcc 7 (GCC)
configuration: --enable-libass --extra-ldflags=-L/usr/local/lib
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
Input #0, ass, from 'output.ass':
Duration: N/A, bitrate: N/A
Stream #0:0: Subtitle: ass
$ file output.ass
output.ass: UTF-8 Unicode text >>495 >>499
ASS字幕の様なレイアウト機能有りの字幕トラックはmp4には規定されてないから単なるデータとして保持してるんじゃないかな
SRT字幕はTimed Text形式として字幕トラック化できる(ffmpegで出来るかは試してないがmp4boxで出来る事なので"できる"としておく)
ffmpeg内でISDB字幕⇒Timed Text形式でmp4に格納、が出来るのかは内部処理見てないから分からないが
ASS以外のフォーマット指定ならどうなるか確認
あとは、mkvコンテナであればASS字幕も字幕トラックとして扱える
もしくは .mp4/.ass と外部字幕として分けて保持するのが無難 (テキストいじれて後調整が利く) >>500
感謝!!
ご指摘のとおり、mp4→mkvに出力ファイルを変更してみました。
$ ffmpeg -c:s isdbsub -vaapi_device /dev/dri/renderD128 \
-hwaccel vaapi -hwaccel_output_format vaapi -y -i "2040_20180214072600.ts" \
-filter_complex "format=nv12|vaapi,hwupload,deinterlace_vaapi,scale_vaapi=w=300:h=-1" \
-c:v h264_vaapi -qp 27 -map s:0 -scodec ass -ass_raw_mode 1 -an \
-f matroska "output.mkv"
$ ffprobe "output.mkv"
…snip…
Stream #0:1: Subtitle: ass (default)
結果、字幕と認識されました!
ただし、vlcなどのプレーヤーでも字幕は表示されませんでした。
他ソフトでも表示はできませんが、プレーヤー機能から字幕の内容は取り出せます。
$ /usr/bin/wine /usr/local/bin/Caption2AssC_x64.exe output.mkv
[Source] output.mkv
[Target] output.mkv
[Format] ass
Invalid TS File.
惜しいところまで行きました。
外部字幕として分けて保持するのが無難のようですかな。 >>502
mkvでいいなら、
最初にmp4コンテナで作成(映像・音声)
→mkvtoolnix(mkvmerge)で別途抽出した字幕をマージしてmkvコンテナ作成
で、ほぼ全てのmkvパーサー(VLC含む)で字幕を再生できるよ
ffmpegでもできるんだけど、やや互換性に難がある印象。 >>502
>ただし、vlcなどのプレーヤーでも字幕は表示されませんでした。
>他ソフトでも表示はできませんが、プレーヤー機能から字幕の内容は取り出せます。
・VLCの字幕メニューから字幕トラックを指定したら表示されるというオチは無いか?
・他のソフトって何を試したんだ?
> $ /usr/bin/wine /usr/local/bin/Caption2AssC_x64.exe output.mkv
> ・・・
> Invalid TS File.
よく知らんがCaption2AssってMPEG-TSから字幕を取り出すツールであってmkvに使えるものじゃないのでは? >>505
返答ありがとう。
> ・VLCの字幕メニューから字幕トラックを指定したら表示されるというオチは無いか?
>
そのオチではないですよ。何回も確認した。
> ・他のソフトって何を試したんだ?
>
他にはPotPlayerとKMPlayer。その2つなら「字幕ブラウザー」「字幕エクスプローラー」で字幕の中身を表示できる。
蛇足ですが、2つとも字幕表示を動画領域表示外の余白領域に表示できるので、元のテロップに被らないところが優位点。
> よく知らんがCaption2AssってMPEG-TSから字幕を取り出すツールであってmkvに使えるものじゃないのでは?
そうだった。いつもTSファイルから抽出していました。 続きです。
ffmpegで抽出したassファイルをmkvファイルにマージしようとしたところエラーで失敗。
ffmpeg -y -i temp/2040_20180214072600.mkv -i 2040_20180214072600_HD.ass -c:s mov_text -c:v copy -c:a copy -map 0:v -map 0:a -map 1:0 -metadata:s:s:0 language=jpn -f matroska output.mkv
...snip...
[matroska @ 0x2705e60] Subtitle codec 94213 is not supported.
av_interleaved_write_frame(): Function not implemented
Error writing trailer of output.mkv: Function not implemented
代替策で以下のやり方ならうまくいきました。各種プレーヤーで表示もばっちり。
1. wine /usr/local/bin/Caption2AssC_x64.exe 〜
assファイルを抽出
2. ffmpeg 〜 -f matroska temp/2040_20180214072600.mp4
字幕無しのmp4ファイル作成
3. ffmpeg -y -i temp/2040_20180214072600.mp4 -i "temp/2040_20180214072600.ass" \
-c:s mov_text -c:v copy -c:a copy -map 0:v -map 0:a -map 1:0 -metadata:s:s:0 language=jpn \
./2040_20180214072600.mp4"
字幕をマージ
以上
mkvtoolnix(mkvmerge)の紹介もありがとう。こちらもオプションが多くて多機能ですね。
まとまった時間ができたらトライしてみます。
最終的には保管目的で、CMカット&字幕付きで変換できることが目標です。
>>498
hq3dで7以上、nlmeansで10をかけなきゃならんくらいひどいから
アンシャープ→デノイズだとノイズは残ったまま
デノイズ→アンシャープだとエッジは潰れたまま >>507
> ffmpegで抽出したassファイルをmkvファイルにマージしようとしたところエラーで失敗。
> ・・・ -c:s mov_text ・・・
> [matroska @ 0x2705e60] Subtitle codec 94213 is not supported.
エラーの内容を見れば原因は一目瞭然だろ。なんでmkvなのにmov_textを指定してるんだ。
>>500が「mkvコンテナであればASS字幕も字幕トラックとして扱える」と書いてくれてるのに。 >>509
ご指摘大変ありがとう。やり直してみた。
$ ffmpeg -y -i output.mkv -i output.ass \
-c:s ass -c:v copy -c:a copy -map 0:v -an -map 1:0 -metadata:s:s:0 language=jpn \
-f matroska output2.mkv
これでプレーヤーで字幕表示できました。
色々助けていただき感謝!! ちょっと知っている人がいたら教えてください。
Ffmpeg ver2,2 で、音声波形が一枚の画像でとれるコマンドは、ありますか?
コマンド名だけでも教えてくれると、ありがたいのですが。
>>512
511です。変更履歴の情報ありがとうございます。
確かに2.2では難しそうなので、他の方法を考えてみます。 Windowsでlibvmafを有効にしたffmpegが使いたくて色々探してたら自動ビルドスクリプトがあった。
https://github.com/jb-alvarado/media-autobuild_suite
説明どおり、ダウンロードしてmedia-autobuild_suite.batを実行して色々な質問に答えたら、
あとは自動でMSYS2環境を作って、必要なライブラリや実行バイナリをビルドしてくれる。
自分はlibvmafが使いたいだけだったので--enable-avisynth --enable-libvmafの
ffmpegだけビルドするようにしたけど、質問に適切に答えればx264やx265などもビルドしてくれる模様。
実行前にmedia-autobuild_suite.batの中身を見て質問内容とかを確認しておくといいと思う。
"Choose ffmpeg and mpv optional libs:"の質問で1(Yes)にすると、
build\ffmpeg_options.txt、buld\mpv_options.txtが生成されて
そこで有効にしたい機能を選べるのだけど、ffmpegだけほしいという場合でも
ffmpeg_options.txtだけでなくmpv_options.txtも見て、不要なものは無効にしておくこと。
そうじゃないとmpv用ライブラリのビルドが入ってしまい、無駄に時間がかかる。
(mpv自体をビルドしないようにする質問もあるのだけど、これでNoにしておいても
なぜかmpv_options.txtを見てmpv用ライブラリのビルドにいってしまう模様。) 8bitのyuv420p.mp4と、10bitのyuv420p10le.mp4があり、SSIMの計算をしたいと考えています。
8bit,10bitの順で渡す(yuv420pで計算される)
ffmpeg.exe -i yuv420p.mp4 -i yuv420p10le.mp4 -filter_complex "ssim" -an -f null -
→0.922619
10bit,8bitの順で渡す(yuv420p10leで計算される)
ffmpeg.exe -i yuv420p10le.mp4 -i yuv420p.mp4 -filter_complex "ssim" -an -f null -
→0.924664
これをyuv444p16leで計算させたいのですが、うまくいきません。
●-pix_fmt yuv444p16leを指定してみる
ffmpeg.exe -i yuv420p.mp4 -i yuv420p10le.mp4 -pix_fmt yuv444p16le -filter_complex "ssim" -an -f null -
→0.922619となり、SSIMの計算には影響を与えていない。
●scaleでyuv444p16leに変換してからssimに渡す
set destFmt=yuv444p16le
ffmpeg.exe -i yuv420p.mp4 -i yuv420p10le.mp4 -filter_complex "[0:v]scale=flags=+print_info:dst_format=%destFmt%[s0];[1:v]scale=flags=+print_info:dst_format=%destFmt%[s1];[s0][s1]ssim" -an -f null -
→クラッシュしてしまう。yuv422pやyuv444pも同様。
●yuv420しかダメなのかなということで妥協してscaleでyuv420p16leに変換してからssimに渡す
set destFmt=yuv420p16le
ffmpeg.exe -i yuv420p.mp4 -i yuv420p10le.mp4 -filter_complex "[0:v]scale=flags=+print_info:dst_format=%destFmt%[s0];[1:v]scale=flags=+print_info:dst_format=%destFmt%[s1];[s0][s1]ssim" -an -f null -
→値が0.049253と異様に低くなってしまう
どうすればうまくいくでしょうか。
試したバイナリはZeranoe版の3.4.1-win64-staticと20180313-688060f-win64-staticです。
おそらく異なるビット深度で比較しているからエラーが出るのかと。
入力の時点でビット深度を揃えた方がよさそう。
ffmpeg.exe -f lavfi -i movie=yuv420p.mp4,format=yuv444p16le -f lavfi -i movie=yuv420p10le.mp4,format=yuv444p16le -filter_complex "ssim" -an -f null -
けどこういう意見もある
ffmpeg フレームごとのSSIMをリアルタイムで表示してみる - 脳内メモ(アドレスが貼れない
今のところffmpegのssimフィルタは8bit/チャンネルのフォーマットのみ対応で10bitや16bitは内部で8bitフォーマットに変換されてから計算されます。もっとも10bitの末尾2bit分の違いで現れる数値に意味があるかは疑問ではあります。
CPUの違いで結果に差が出るもんですか?
i7 2600とi3 2100の環境で同ソース、同パラメータでサイズが数十MBも違うファイルが出来たんですが
>>518
できました!ありがとうございます。 -f lavfi -i movie=〜 という入力手法は知らなかったので勉強になりました。
1つ難があるとしたら、movie=で渡すファイル名やパスのエスケープが必要ってとこですね。
色々試していて
ffmpeg.exe -i yuv420p.mp4 -strict -1 -pix_fmt yuv444p16le -f yuv4mpegpipe - | ffmpeg.exe -i - -i yuv420p10le.mp4 -filter_complex "ssim" -an -f null -
という、やや回りくどい方法も思いついたのですが、どちらを使うか少し考えてみようと思います。
なお 8bit以上の深度でのSSIM計測には、その記事が出た後の2016年12月に対応していて、
2017年7月初頭にバグ修正もされたので、それ以降のバージョンであれば問題なさそうです。 そのパラメータと出力内容を書いてくれないことには分からない
SponsoringPrograms/GSoC/2018 - FFmpeg
https://trac.ffmpeg.org/wiki/SponsoringPrograms/GSoC/2018
Google Summer of Code 2018のリストが来てたのね。
面白そうなものもあるし、頑張ってほしい。
Mentored Projects
・Cineform improvements
・DICOM support
・HEIF support
・MPEG-4 ALS codec improvements
・Super Resolution filter
・360° video filter
・Motion search on the GPU using Vulkan
・Video filtering with OpenCL
・Replacement for ffserver
Unmentored Projects
・VC-1 interlaced
・JPEG 2000 libopusやlibvorbisで音声をダウンミックスせずにマルチチャンネル(5.1ch)のままエンコードするには
どうしたら良いのでしょうか?
-ac 6にしたら5.1chでエンコードできました。自己レスですみません。
ところで、-acを明示せずに変換元の音声に応じて自動的に2chエンコや6chエンコ
するようにしたいのですが、ffmpegは-ac未指定だと2chにダウンミックスしてしまうよう
なんですが、なにかいいお知恵があれば拝借したいのですが。
>>524
ffprobeを使えばchannelsとかchannel_layoutが取れるから、
それを取得してffmpegの引数に利用するバッチを書くといいのでは。 >>522
MPEG-4 ALS まだ生きてたんだな FLACもALACもあるのにローヤリティ払ってまでALS使う意味がわからない
公式ビルドのffmpeg3.4.2でlibx264でエンコードするとなぜか画質がとんでもなく悪くなる。ブロックノイズどころか、ブロックの塊みたいになってマトモに視聴できないレベル
ビットレートを上げていって、10000でもかなり悪く、30000とかいうアホみたいな数値にするととかなり良くなった。HWエンコード(AMF)を使うとノイズはやはり多いけどブロック状にはならない
気になるのがHandBrakeでx264を使うとfpsが20弱で画質は綺麗なのに、ffmpegでx264を使うとfpsがなぜか60くらいまで上がること。原因がわかる人いない?前までこんなことはなかった
すまない。自己解決した。コマンドを書き込もうとしたらビットレートにkを付けるのを忘れてたことに気付いただけだった。本当に申し訳ない
>>525
レスありがとうございます。その方法でやってみます。 直ってよかったな。
あと30kでまあまあの画質に見えたなら眼科行こう。
arib-ts2assを使ってmkvファイルに字幕をつけると字幕のフォントや大きさが
tsファイルのarib字幕と異なてしまうのですが、仕方がないのでしょうか?
arib-ts2assで生成されるassファイルを見るとMS UI Gothicを指定しているのですが、
当方の環境はLinuxでサブ機のWin7から一時的にMS UI Gothicを借りてきて/usr/local/fonts
以下に放り込んだのですが、mkvのass字幕のフォントや大きさは変わりませんでした。
tsのarib字幕ってどんなフォントを使ってるんですか?
https://github.com/johnoneil/arib
arib-ts2ass 大事なこと書き忘れました。再生ソフトはvlc 3.0.1です。
どうもtsファイルのarib字幕はvlcのsubtitleの設定に従ってくれるようです。
assだとvlcの設定を無視するみたいです。
assから変換したsrtファイルを埋め込んだmkvでもvlcの字幕の設定は反映されませんでした。
srtファイルにフォントや大きさなどがしてされているからのようですが。
ffmpegニキヘルプミー
EPGstationというTV予約・録画ソフトにライブ配信機能があってffmpegが使われてるんだが、
PCが非力すぎてデフォルトのエンコードオプションでFPS14程度しか出ない。
それでQSVを使いたいけどもうまくいかない。
デフォルトのオプション
%FFMPEG% -re -dual_mono_mode main -i pipe:0 -c:a aac -ar 48000 -ab 192k -ac 2 -c:v libx264 -s 1280x720 -vf yadif -preset veryfast -aspect 16:9 -vb 3000k -f mpegts pipe:1
考えたオプション
%FFMPEG% -init_hw_device qsv:hw -re -dual_mono_mode main -i pipe:0 -global_quality 30 -c:a aac -ar 48000 -ab 192k -ac 2 -c:v h264_qsv -preset veryfast -vcm 1 -look_ahead 0 -vf yadif -f mpegts pipe:1
これをvlcで再生しようとするとエラーでうまくいかない。
何が間違ってるのか、どうしたらいいのかわかる人教えてください。
>>543
ffmpeg全く関係ないじゃん。なんでここで質問しようと思ったんだ。
DTV板のTS初心者スレにでも行きなよ。 >>547
使ってるffmpegのバージョンとか、VLCのバージョンとか、エラーの内容とか書きなよ。 >>550
EPGstationがどこかにffmpegのログを吐いてるんじゃないか?
それ探してみれば何らかの情報が得られると思うけど。
EPGstation側で残してないなら-reportつければログとれると思う。 >>551
ありがとう。-reportやってみた
ログの最後にこんなエラーがあった。
[AVHWDeviceContext @ 000002002f1f7b20] Failed to create Direct3D device
Device creation failed: -1313558101.
Failed to set value 'qsv:hw' for option 'init_hw_device': Unknown error occurred
Error parsing global options: Unknown error occurred
ググったらこんなページがあった
https://trac.ffmpeg.org/ticket/6827
解決不能なんかなorz >>552
-init_hw_deviceを外したらどうなるんだ?
それでもダメなら単にQSVが使えない状況なだけじゃないの。
rigaya氏のサイトからQSVEncを落とすと、「QSVが利用可能か確認 [ダブルクリック].bat」ってのがあるから
それを実行して、QSVが使える状況になってるのか確認してみるといいのでは。
OSやdGPUの有無にもよるけど、モニタつないでないとダメとか仮想画面割り当てとかないとダメとかあったろ、たしか。
そのあたりの環境情報も出したほうがいいかもね。 vlc3は、まだ全く安定してないので議論するだけ時間の無駄
>>553
お世話になります。
QSVencの「QSVが利用可能か確認.bat」やってみました。
QSVが使用できます。
使用可能なMediaSDK: Hardware API v1.19
だそうです。
環境は
MB: ASRock N3700-ITX(CPU onboard)
OS: Windows10 home 64bit
チューナー: PT-3
グラボはつけてなくてモニタはあり、仮想画面は使ったことないです。
言われた通り-init_hw_device qsv:hw を抜いてみたら動いた!
これって必須じゃなかったの?!
しばらく動かしてるけど大丈夫そうです。
すごい!いろいろ考えてくれてありがとう(人''▽`)☆ >>546
assのまま、Aegisubのような字幕エディタで調整すればいいよ。
普通のエディタでも最初の方にフォントの指定があるから、できないことはないけど、
知識がないとちょっと難しいかな。 そういえば>>541のAV1エンコード速度の件ですが、現在のffmpegのlibaom-av1エンコーダは
-tile-columnsをサポートしてないようで、マルチスレッドが効かないようです。
マルチスレッドありでの速度計測はaomenc.exeで試すかffmpegの更新を待つしかない模様。
後日aomenc.exeで再計測してみる予定です。 AV1系のハードウェア実装は2020年頃になるらしいけど、CUDAやらハイブリッドやらで
早めに実装してきたりする可能性もあったりするんだろうか。よくわからないけど。
linuxのintel CPU(Kaby lakeのpentium)のVAAPIでthreads指定して意味あるんでしょうか?
音声多重放送に対応するにはどうすればよいのでしょうか?
多重放送じゃないときも同じスクリプトファイルを使いたいので、できれば両対応の-mapが書ければ良いのですが、
どうすればよいのかいまいちわかりません。
音声全部取りたいなら -map a または -map 0:a で取れるはず
>>563
それじゃ主音声しかとれなくないですか?
webを参考にして次のパイプでいけました。
numberofmap=$(ffmpeg -i temp.ts 2>&1 | grep Audio | grep -o -e 0:[0-9] | sed -e "s/0:/-map 0:/" | sed -z 's/\n/ /g')
#numberofmapをffmpegの-map 0:1の位置におく。 >>564
2つのaacストリームが入ってるtsファイルから、>>563の方法で普通に2つのストリームが取れたけど。 >>565
-map 0:aだと当方の環境(debian stretch ffmpeg 昨日のsnapshot)だと主ストリームしかとれませんでした。
あと、#numberofmapは$numberofmapの間違いです。(bashのシェルスクリプトで利用) ts 結合するだけなら ffmpeg 使わなくても単純バイナリ結合で何も問題なかった
>>541ですが、1920x1080、10フレームのAV1エンコード速度(-cpu-used毎)を測りなおしました。
●aomenc.exe で --tile-columns=3 をつけてタイル分割エンコードした場合
エンコーダ: aomenc.exe-20180401-0.1.0-9011-g0ec805145 (>>515のMABSで自ビルド)
結果: 0.0054〜0.1046fps
●自ビルドしたffmpegでエンコードした場合 (現時点では-tile-columns指定不可)
エンコーダ: ffmpeg x64 20180403-N-90590-g197a4e8fee (libaom 0.1.0-9028-geeda6d2de)
結果: 0.0029〜0.0597fps
●Zeranoe ffmpegでエンコードした場合 (現時点では-tile-columns指定不可)
エンコーダ: ffmpeg x64 20180402-N-90578-g02ae52db87 (libaom 0.1.0-9012-ge83c6624f)
結果: 0.0004〜0.0275fps
まとめ
●--tile-columns=3をつけることでエンコード速度は2倍くらいになる。
ただ、無しの場合に12%程度だったCPU使用率が100%くらいになるのに2倍程度にしかならないとも言える。
●Zeranoe版ffmpegのエンコード速度がやけに遅い。MABSで57.5分だったのがZeranoeだと378.2分。
libaomのビルドをミスってる可能性があるので連絡済み。反応待ち。 VP9もそうなんだけどav1は普通のPCじゃ実用的には扱えないか
fps恐ろしく低いね
>>568で書いた、「Zeranoe版のAV1エンコードが遅い」という件ですが、次のビルドで修正されるそうです。
今はまだffmpeg-20180404-53688b6になってるので、その次ですね。 Zeranoe版ffmpeg-20180405-e54679b-win64-static.zipでlibaom問題の修正確認。
テスト
ffmpeg.exe -f lavfi -i testsrc2=duration=10:size=1920x1080:rate=1/1 -an -strict -2 -c:v libaom-av1 -b:v 0 -crf 30 -cpu-used 4 -threads 8 -f matroska testsrc2.mkv"
●MABS-20180403-N-90590-g197a4e8fee (libaom 0.1.0-9028-geeda6d2de)
EncodeTime (sec): 00:01:48.24 (108.24sec)
Result: 10frames, 354.3kbps, 0.1fps (10/108.24=0.0924fps)
●MABS-20180405-N-90627-ge54679b6c1 (libaom 0.1.0-9082-gab1e1db19)
●Zeranoe-20180405-N-90627-ge54679b6c1 (libaom 0.1.0-9080-g55c95f8c1)
修正されたので両方ともだいたい同じくらい。
EncodeTime (sec): 00:02:52.43 (172.43sec)
Result: 10frames, 331.2kbps, 0.1fps (10/172.43=0.058fps)
同じ設定でも0403版だと108秒だったのが、0405版で172秒になってるので、
おそらくこの間にlibaom側で速度に影響のある変更があったと思われ。
しばらくは色々な修正が続きそう。
Zeranoe版の 20180406-9703b7d ビルドからVP9の10bitが追加された。
---
10-bit VP9 support added - FFmpeg
https://ffmpeg.zeranoe.com/forum/viewtopic.php?f=2&t=5620
10-bit VP9 support has been added with the 20180406-9703b7d build.
To use 10-bit mode set the appropriate pixel format, for example:
ffmpeg -f lavfi -i testsrc2=duration=10 -c:v libvpx-vp9 -pix_fmt yuv420p10le o.mkv ffmpegでaribB24字幕やデータ放送を保存したまま映像だけエンコードする(h.264のtsファイルにしたいのです)にはどうすればいいんでしょうか?
-,ap0v -map:0aのような-map0:dというパラメータがあることまでは調べがついたのですが、使い方がイマイチわかりません。
dtv版のlinuxテレビスレに投稿しましたが、こちらのほうが詳しい方が多いと思い再投稿します。
失礼、
>-,ap0v -map:0aのような
-map 0:v -map0:aの間違いです・
自分で実験してみたのですが、一応-c:d copy -map 0:dでData binのコピーはできるようです。
ただ、vlcでオリジナルのtsにはあったaribB24字幕の選択肢がなくなってますし(字幕として認識されない)、
あまり意味のあることではないようです。
そう簡単にaribB24字幕がコピーできたらarib-ts2assのようなツールも必要ないんでしょうけど・・・
ffmpegでtsのaac 5.1chからlibopus 5.1chに変換すると
This stream seems to incorrectly report its last channel as LFE[5], mapping to LFE[0]
ってメッセージが出るんですが、まずいですか?
検索しても10件ぐらいしか引っかからないんですが。
番組はNHKクラシック音楽館と名曲アルバム+です。
libfdk_aacを使っても同様のメッセージがでました。
問題なければ良いのですが。
それはそうと、5.1chの場合、AAC(放送波やlibfdk_aac)が5.1ch side speakerを想定するのに対し、
opusはrear speakerを想定するようですが、5.1chaacなtsをopus 5.1chに変換する時に特段問題などはないの
でしょうか?
今の所2chバーチャルサラウンドしかやっていないので、実際の5.1chスピーカーの場合が
わからんのですよ。今年中に7.1ch揃えようと思って入るのですが。
質問させてください。
複数枚JPEG画像を連結しMPEGに変換していますが、入力JPEG画像の色合いと違った結果になってしまいます。
白っちゃけるというか、明るく滲みボヤけるような…。
入力JPEG:
変換後キャプチャ:
コマンドラインは下記の通りです。
ffmpeg.exe -r 30.00 -i US_%d.jpg -vb 16000k -c:v:1 libx264 -s 800x600 -r 30 test.mpg
↓下記の2オプションにて明度彩度を調整しても、滲みボヤけたあとに適用されるようで、効果が感じられません。
-vf eq=brightness=-0.02:saturation=2
入力JPEGの画質を劣化させず、または劣化を最小限に抑えてMPEG変換する方法、ありますでしょうか、
どなたかお分かりになりましたらご教授願います、よろしくお願いいたします。 JPEGはフルレンジで記録されてるけどMPEGはリミテッドレンジか基本だからリミテッドレンジでエンコードしないと色がおかしくなるのは分かる
でもffmpegでフルレンジ→リミテッドレンジ変換するコマンドは知らない
あんまり自信ないけどこうかな
-vf scale="in_range=full:in_color_matrix=bt601:out_range=limited:out_color_matrix=auto"
実際にエンコードしてみたらvf scale付けたほうがおかしくなった
無指定で正しいレンジに変換してくれたけどもしかして再生環境の問題?
>>581
ありがとうございます、試したところ残念ながら効果的ではなかったようです。
>>582-584
ありがとうございます、ちょうどご提示いただいたオプションを試していたところですが、
Unable to parse option value "limited" と表示され、つまづいていました。
再生環境はWindows7WindowsMediaPlayer12です。
他のプレイヤーでしたら変わるでしょうか? >>585
使っているffmpegのバージョンが古いということはない?
新しいの入れてもう一度>>580のコマンドを入力して >>586
たびたびご対応いただき、本当にありがとうございます。
現在使用中のffmpegは、windows32bit版で、引数なし実行で
ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7.3.0 (GCC)
と表示します。
ダウンロードサイトがよくなかったでしょうか…他のバイナリダウンロードを探してみます。 >>580
> ffmpeg.exe -r 30.00 -i US_%d.jpg -vb 16000k -c:v:1 libx264 -s 800x600 -r 30 test.mpg
●800x600の30fpsで16Mbpsはいくらなんでも盛りすぎだと思う。
●-c:v:1としてるからlibx264の指定は無視され、mpeg1videoでエンコードされてしまっている。
(ただ、この場合自動でyuvj420p→yuv420p変換が行われるので
>>580のようなレンジ異常は起きないはずなんだが・・・)
●mp4じゃなくmpgにしたいの?libx264でエンコするならmp4の方がいいと思うよ。
●jpgソースをそのままlibx264に渡すと自動的にフルレンジにされてしまう。
再生環境(EVRなど)によってはフルレンジフラグが反映されずレンジ異常に見えるので
明示的にリミテッドレンジに変換したほうが良い。
●HD(BT.709)とSD(BT.601)の境界判定はモノによって異なるが
縦>=578をHDとみなすことが多い(EVR/madVR等)ので、800x600ならHD(BT.709)として再生されることが多い。
BT.601のフラグをつけてもいいんだけど、BT.709に変換してBT.709のフラグをつけたほうがより良い。
●-rは最初のだけでいいと思うよ。
ということで、以下のようにすればよさげかな。
フレームレートはとりあえず30.00のままにしてあるけど、30000/1001じゃなくていいのかな?
ビットレートもとりあえず4Mbpsにしといたけど、調整するなり-crf 20とかにするなりしてくれ。
ffmpeg.exe -r 30.00 -i US_%d.jpg -vf scale=out_color_matrix=bt709:out_range=tv:flags=+accurate_rnd -c:v libx264 -b:v 4000k -pix_fmt yuv420p -colorspace bt709 -s 800x600 test.mp4 >>588を試してて気づいたけど、-vf scale で
flags=+accurate_rndなしの場合: (235, 235, 235) → (232, 235, 232) ★RとBが下がる
flags=+accurate_rndありの場合: (235, 235, 235) → (236, 233, 236) ★Gが下がりRとBは微妙に上がる
という結果になった。
まあ目視で気づくことはまずないだろうけど、もうちょい正確に変換する方法ってないんだろうか? ああ、ごめん。bitexactもつければいいのか・・・。
ということで>>588のコマンドを更新。
ffmpeg.exe -r 30.00 -i US_%d.jpg -vf scale=out_color_matrix=bt709:out_range=tv:flags=+accurate_rnd+bitexact -c:v libx264 -b:v 4000k -pix_fmt yuv420p -colorspace bt709 -s 800x600 test.mp4 >>558-590
詳しくご解説いただきまして、本当にありがとうございます。
最終的にご提示いただいたコマンドを試してみたのですが、
残念ながら大きな変化は起きておらず、白く滲んだような状況は変わらずです、申し訳ありません。
↑この部分差画像を作っていてわかったのですが、全体が白く滲んでいるわけではなく、
暗いけどなんとか見えていた部分が逆に見えなくなる程に暗くなっていたりと、
素人ながら勝手にコントラスト調整されている?ような感じにも見受けられます…。
ご解説いただいた部分、まだ理解が及んでおりませんで、調べながら調整してみます、ありがとうございます。 >>591
なら多分再生側の問題だね。変な補正が入ってるんだと思う。
1.WMPじゃなく、他の再生ソフトで試してみる。
2.他の再生ソフトでもおかしくなる場合は、グラボ側の画質補正機能が働いてる可能性もあるので
グラボ側の設定を見て画質補正を切ってみる。
また、再生ソフトに内臓デコーダがある場合は、一応DXVAもオフにしてみる。
これらを試してみればいいと思う。 >>592
おはようございます、度々ご対応いただきまして、本当にありがとうございます。
再生環境ということで、早速確認してみます。 質問させていただいたFFMPEGの変換品質の件ですが、解決いたしました。
グラフィックボードドライバのビデオ補正が原因でした。
ffplay.exeで表示確認してみたところ入力JPEGとほぼ同品質、RalPlayerで確認したところWMP12と同様と、
差が出ました。
そのため、アドバイスいただきましたグラフィックボードの補正かと、OFFにしてみたところ、これが的中、
WMP12でもffplay.exeや入力JPEGと見た目には変化を感じられない品質になりました。
別のPC(デスクトップPCのインテルHDオンボードグラフィック)でも確認したところ、そちらはもっとヒドイ補正に
なっており、これもOFFにしたところ入力JPEGにかなり近づいた品質になりました(まだOFFにしきれていない?)
再生環境に違いがあるということは見識不足で途中まで考えもしませんでした、変換品質の問題と思い込んで
見当違いな質問になってしまい、トライしていただいた皆様に余計な作業をさせてしまいました、
申し訳ございませんでした。
とりいそぎ、社内より先に、コチラに報告させていただきました。
最後になりましたが、
いち早く反応してくださいました、ID:dhAIViWL0 様、
詳しい解説とコマンド引数をご提示くださいました、ID:3ylU2AP70 様、
解決に至るための確認方法とご提示くださいました、ID:cDZZ+EwU0 様、
もしかしたらレスをいただくまで至らなくてもトライしてくださったかもしれない住人の皆様、
本当にありがとうございました。
またお世話になることがあるかもしれませんが、そのときも何卒よろしくお願いいたします。
見た感じ医療関係の画像っぽいけどこの手の画像はアーティファクトとか混ざってしまうと医療ミスに繋がりかねないらしいから正確な表示が出来てなかったのはちょっと不安になる
社内に画像、映像関係に詳しい人はいないのかな
あとJPEGだと不可逆圧縮になっててノイズが混じるから他の形式にしたほうがいいのでは?
さすがに医療現場で診断に使うためのデータ作りではないと思うが、社内云々と言ってるのは確かに気になるな。
まあ解像度も低いし、ただのサンプル作成だとは思うけど・・・。
医療現場のことは知らんけど、診断に使うようなものなら多分4:4:4とか10/12bit深度とかにするよな・・・?
>>595
>>596
ご心配いただいており、恐縮です。
現場端末ではJPEGに変換する前の、画像検査装置から出力された無劣化データを表現していますが、
医師の学会発表用などの資料作りや、専用ビューアが無くても参照できる患者様にサービスとして渡すデータとして、
MPEGを活用しています(医療機関同士のやりとりでは無劣化データが活用されます)。
社内に映像関連に詳しい人間がいないのは痛いところです、ご指導ご鞭撻、ありがとうございます。 音声のリサンプル・フィルタには
libavresample を使った resample
libswresample を使った aresample
の2種類があるけど、前者は切られるみたいだな。
4.0 リリース キタ━(゚∀゚)━!
>>599
> AMD AMF H.264 and HEVC encoders。NVENC よりも品質はよくないらしい(未確認)
これでAMDのSDKをダウンロードしてきてインストールする手間が省けるようになるのかな? >>600
おや、ほんとだ。
L-SMASH Worksがまだlibavresample依存になってるので、早めに対応しないとまずそうだね。 特定のHEVC 29.97fpsの動画をx264でAVCに変換するとfps指定してもVFRになっちゃう
何気にAV1も追加されたのか、死ぬほど遅いらしいけど、帰ったら興味本位で一回試してみるか
動画時間考えないでエンコード始めたら1日じゃ終わらない可能性
4.0のバイナリがまだどこにもおいてない件に関して
バン
バン (∩`・ω・) バン
/ ミつ/ ̄ ̄ ̄/
 ̄ ̄\/___/
ffmpegでarib-ts2assというtsのCCからassファイルを作成してくれるソフトで作ったassファイルを
くっつけると、動画の長さが10時間とか異常に長い不正なファイルが生成されてしまうのですが、
同様の症状の方いらっしゃいます?
ffmpeg -i /nas/videos/temp.webm -i /nas/videos/temp.ts.ass -c copy -c:s copy -map 0:v -map 0:a -map 1:0 -metadata:s:s:0 language=jpn test.mkv
https://github.com/johnoneil/arib
arib-ts2ass コーデックを
-c:v copy -c:a copy -c:s ass
にしてみても変わりませんでした。不思議なのは動画によってはちゃんと長さが狂わずに字幕がつけられる場合
もあることです。既知の不具合だったらお教え願いたいのですが、おま環でしょうか?
また字幕をつける前のtemp.webmなどを再生してみても長さは狂っていないので、やはりass字幕をつける時に狂う
ようなのですが、よくわかりません。
h264のcrfが使えなくて2passでエンコするのめんどい。
>>609
元のタイムスタンプのせいでは?
>>611
「使えない」の意味がわからない
"ffmpeg"で"x264"のエンコ時にcrfを使うことならできる >>613
タイムスタンプは録画開始からの相対時間で狂っているようにも思えないのですが(実際に正常な
ファイルができる場合もある)、当面は字幕無しで行ったほうが良さそうですね。
スレ汚しすみません。 >>614
ass字幕ファイルを、字幕エディタ(Aegisubなど)で見たらどういう感じ?
そこのタイムラインがおかしいのかもしれないよ。 長さが異常なmkvファイルからMKVtoolNiXなどでmksを作ってassファイルを抜き出してみても
特に異常な点は見当たらず・・・
ffmpegで字幕をつけず、mkvmergeを使っても狂う場合(ちゃんとできる場合もある)があるので、
ffmpegの問題ではないかもしれません。当面は字幕なしでいきます。
お付き合いくださってありがとうございました。
バージョンを重ねるごとにnvenc速くなるけど4.0だとどんくらいになるかな
保存用ならハードウェア支援は使うべきではない
質かサイズのどちらかが犠牲になってもいい、ad hoc用
結局h265とvp9、av1はエンコード速度が遅くて難儀する
見れればいいってだけならハードウェア支援
常に我慢できるギリギリまでエンコードの負荷は上がり続けるからな
数年後にもやっぱり長時間CPU回してると思う
ストレージなんて今はゴミみたいに安くなってるんだから
設定高めのハードウェアエンコでさくっとエンコしちゃうのが今の流行
BDMVが溜まってきたけどハンドリング悪いからmakemkvでmkvの1ファイルにしようかと思ったらx86のlinuxでは動くのにraspiだと動かないのかよ。
ホームネットワーク用に常時稼働させてるけど負荷低いからダラダラエンコさせとくのにちょうどいいのにな。
ffmpegでなんとかするか。
360度動画として認識させるためのメタデータの付加ってどのオプション?
ffmpegを使って
動画を再エンコードしつつ、音声を削除したいと考えています。
-map 0:0 や -an を入れると
音声を削除することができるのですが、
普通に動画を再エンコードする場合と比べて
10倍くらい時間がかかってしまいます。
これは仕様なのでしょうか?
-c:v copyで映像を分離してからエンコードしたら?
動画に時間を表示したいのですが
-vf drawtext=fontsize=40:x=(w-text_w)/2:y=(h-text_h)/2:fontfile='C\:\\Windows\\Fonts\\Arial.ttf':text=%{pts\\:hms}:box=1
というコードで
00:00:00.000
という表記で表示することはできました。
ただ、時間や分、ミリ秒は表示せず
トータル時間の秒数だけを表示したいのですが
どのようにすれば良いですか?
まちがえたこっちだ
text='%{eif\:t\:d}'
>>636
ありがとうございます。
うまくいきました。
あと、-iの前に-rで大きなフレームレートを指定すると
高速再生することができますが、
この方法だと、フレームレートを大きくした後の動画の時間に対してタイムコードが付いてしまいます。
timecode='00\:00\:00\:00':r=59.94
という方法だと、フレームレートを大きくする前の動画の時間に対してタイムコードが付くのですが
前述のように00:00:00.000 というフォーマットになってしまいます。
どのようにすれば良いでしょうか? >フレームレートを大きくする前の動画の時間に対してタイムコードが付く
つまり倍速再生にして、時間経過も倍速表示にしたいと
25fps の動画の場合、倍速分の入力フレームレートを指定し、最初に倍速分の pts を掛けて、元に戻す
ffmpeg -r 50 -i input -vf setpts=PTS*2,"drawtext=fontsize=30:box=1:[email protected]:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{eif\:t\:d}'",setpts=PTS/2 output.mp4 すいません、以下ご教示頂きたいのですが分かる方、何卒よろしくお願いいたします
【やりたいこと】
画面キャプチャを取りながらPC音とマイク音を合成したMP4を作成したい
ffmpegの起動引数
【マイクだけ or PC音のみは問題なし】
例:-rtbufsize 30M -f dshow -i audio="virtual-audio-capturer":video="screen-capture-recorder"
-y -f mp4 -c:v libx264 -b:v 2500k -r 30 -c:a aac -af aresample=async=100 -pix_fmt yuv420p -tune zerolatency "E:\test.mp4"
【MixしようとするととたんにNGになる】
例:-rtbufsize 130M -f dshow -i audio="virtual-audio-capturer" -f dshow -i audio="マイク (Realtek High Definition Audio)"
-f dshow -i video="screen-capture-recorder" -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" -y -f mp4
-c:v libx264 -b:v 2500k -r 30 -c:a aac -pix_fmt yuv420p -tune zerolatency "E:\test.mp4"
追加ですが、エラーとしては「real-time buffer [screen-capture-recorder] [video input] too full or near too full (121% of size: 3041280 [rtbufsize parameter])! frame dropped!」
というエラーが発生します
>>640,641
エラーメッセージの、3041280ってデフォルト値っぽいけど
https://ffmpeg.org/ffmpeg-formats.html#Format-Options
>rtbufsize integer (input)
>Set max memory used for buffering real-time frames.
入力(-i xxx )毎に指定するのかな?
だから、video入力の前につけてみたらどうだろうか
-f dshow -i audio="virtual-audio-capturer" -f dshow -i audio="マイク (Realtek High Definition Audio)" -rtbufsize 30M -f dshow -i video="screen-capture-recorder"
-filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" -y -f mp4
-c:v libx264 -b:v 2500k -r 30 -c:a aac -pix_fmt yuv420p -tune zerolatency "E:\test.mp4" 初めまして。
質問させていただきたいのですが、.m4vから.mtsへ以下のフォーマットで書き出したいのですが、
BDAVにフォーマットを変換するコマンドラインがわかりません。どなたかわかりませんか?
====
形式:H.264TTS(X264)、PID=1011
ビットレート:CBR8Mbps
秒数:15秒
解像度:1920×1080
アスペクト比16:9
フレームレート:固定29.97
スキャン:インターレースボトムファースト
フォーマット:BDAV
====
これがコマンドラインです
ffmpeg -I input.mp4 -vcodec h264 -streamid 0:4113 -c:v libx264 -x264-params "nal-hrd=cbr:force-cfr=1" -b:v 8000k -minrate 8000k -maxrate 8000k -bufsize 109.7M \ -s 1920x1080 -r 30000/1001 -flags +ilme+ildct -alternate_scan 1 -top 0 out.mts
ffmpeg -i input.m4v -c copy output.m2ts
>>650
やっぱりそうなりますか
ありがとうございました。 >>639
ありがとうございます。
仕事が忙しく、試すことができなかったのですが
いま、試したところうまくいきました。
あと、できれば、
12 sec
というような表示や
2m23s
のような表記も出力できるようにしたいのですが
どのようにすれば良いですか?
eifのフォーマットに関して検索して調べてみたのですが
公式ページも含めて解説ページが見つかりませんでした。
どこに書かれてありますでしょうか?
>>653
ありがとうございます。
うまくいきました。
重ね重ね申し訳ないのですが
2m23s
text='%{eif\:trunc(t/60)\:d}m%{eif\:mod(t\,60)\:d}s'
の方で、このコードだと
60秒未満の場合であっても
0m24s
のように表示されてしまいます。
60秒未満だと
24s
60秒以上だと
1m32
のような表記にしたいのですが
可能でしょうか?
if文のようなものは入れられるのでしょうか? タイムライン編集を使って最初の60秒を非表示にすればできるが
分と秒が別フィルタになるので座標指定正しくしないとずれる
text='%{eif\:trunc(t/60)\:d}m%{eif\:mod(t\,60)\:d}s':enable='gte(t,60)'
>>656
ありがとうございます。
試してみたのですが
文字が表示されないのですが・・・・
>最初の60秒を非表示
タイムライン編集で60秒たつとフィルタが有効になる
>分と秒が別フィルタになるので座標指定正しくしないとずれる
drawtext=fontsize=30:box=1:[email protected]:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{eif\:trunc(t/60)\:d}m':enable='gte(t,60)',
drawtext=x=42:fontsize=30:box=1:[email protected]:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{eif\:mod(t\,60)\:d}s'
コマンド例
ffmpeg -r 50 -i input -vf setpts=PTS*2,"drawtext=fontsize=30:box=1:[email protected]:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{eif\:trunc(t/60)\:d}m':enable='gte(t,60)',
drawtext=x=42:fontsize=30:box=1:[email protected]:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{eif\:mod(t\,60)\:d}s'",setpts=PTS/2 out.mp4 >>658
しょへええ、うまくいきました
ありがとうございます。
詳しいお方なので、もう一つ質問してもよろしいですか?
30fpsの動画を倍速再生したい場合
-iの前に
-r 60
のように、元の動画のfps2倍した数値を入れると
うまくいきました。
もし毎回30fpsと決まっていたら良いですが
そうでない場合、予めffprobeなどで動画のfpsを読み込んでから
その読み込んだfpsの二倍するようにするコードを書いています。
ただ、あまりエレガントではないのですが
-r PTS*2
のように、一つのコードだけで完結したいのですが
そのようなことは可能でしょうか?
>>660
ありがとうございます。
やはりそうでしたか・・・
ちなみにあと、
02m06s
のように数値を二桁表示にしたい場合、
>>658で教えていただいた通り、
enableで分岐して
数値の前にゼロを付けるしかないですか?
よろしくお願いいたします。 text='%{eif\:trunc(t/600)\:d}%{eif\:trunc(t/60)\:d}m%{eif\:mod(t\,60)\:d}s'
>>662
ありがとうございます。
そのままのコードでは
00m2s
のようになってうまくいきませんでしたが、
自分で工夫することでうまくいきました。
しかし、やりたいことはこんな単純なことなのに
ここまで複雑な数式コードになるとは思いませんでした・・・
重ね重ねありがとうございます。
あと、ちなみに
drawtextで
この画像みたいに白い文字列の周りに黒い影を付けたいのですが
可能でしょうか?
https://ffmpeg.org/ffmpeg-filters.html#drawtext-1
オプションを見てみると
shadowcolorというものがあるので
shadowcolor=blackと指定してみたのですが
影が表示されないのですが
どのようにしたら良いですか?
shadowxやshadowyも使ってみたのですが
このオプションを使用すると文字列が表示されなくなるのですが・・・
一体どうすれば良いですか?
誰かlibvmafが有効になったffmpegのバイナリをアップしてくれませんか
>>515のビルドスクリプトを使っても何故かVMAF算出時にクラッシュするバイナリしか出来なくて困ってます shadowcolor はテキストの影の色なので完全に縁取り(影の大きさが違うから)は出来ない
ffplay -f lavfi -i color=888888,drawtext=fontsize=30:shadowcolor=black:shadowx=2:shadowy=3:fontcolor=white:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='aiueo'
>>666
ありがとうございます。
そうでしたか
提示してくださったコードは何のコードでしょうか?
私の環境だと
shadowx=2:shadowy=3
を使うと文字が表示されなくなるのですが・・・ >>664
縁取りはborderwとbordercolorでできる 音声ミックスについて教えてください。
以下の内容で、映像+PC音+マイクを合成しようとしているのですが、
PC音がなっていないときはマイクの入力が無視されるようです。
マイクもPC音も撮れるようにしたいのですが、どのような引数にすると撮ることができるのでしょうか。
【現在】
-rtbufsize 40MB -f dshow -i video="screen-capture-recorder":audio="virtual-audio-capturer"
-f dshow -i audio="マイクデバイス" -filter_complex amix -async 100 -pix_fmt yuv420p -tune zerolatency
-y -f mp4 -c:v libx264 -b:v 2500k -r 30 -c:a aac "C:\test.mp4"
※WMVにしても同じ現象でした。
同じく音声ミックスで誰かお助けを。。
調べまわったが解が出てこなかったです。。
Lch.wav Cch.wav Rch.wav という3つのモノラルファイルを1つの3chファイルにミックスしたいのです。
どなたかやり方わかる方いましたら教えて頂ければ助かります、、
Manipulating audio channels
https://trac.ffmpeg.org/wiki/AudioChannelManipulation
6 × mono → 5.1
Combine 6 mono inputs into one 5.1 (6 channel) output with the amerge audio filter:
ffmpeg -i front_left.wav -i front_right.wav -i front_center.wav -i lfe.wav -i back_left.wav -i back_right.wav \
-filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a]amerge=inputs=6[aout]" -map "[aout]" output.wav
All inputs must have the same sample rate and format. If inputs do not have the same duration the output will stop with the shortest. エスパーするとこうかなあ
>ffmpeg -i Lch.wav -i Rch.wav -i Cch.wav -filter_complex "join=inputs=3:channel_layout=3.0" 3ch.wav
DARU/CHANNEL-MASTERでch結合とか
>>674
語彙力足りてなくて申し訳ないです。
要するのmono(1ch)ファイル3個をミックスしてLCR(3ch)の1個のファイルにしたいという意味です。
この時それぞれLのファイルはLch、CのファイルはCch、RのファイルはRchとしてミックスしたいという意味です。
>>675 >>676
おお!これでいけるかも、、
トライしてみます! できた。。。あなたが神か。
一週間くらい悩んでたので助かりました。
ありがとうございました!
>>679
676ので左とか右とか属性つくの?
単に3つ混ぜただけだとうまく2.1ch的に再生できるのかな? channel_layout=3.0 と-iを並べる順番が大事
詳しくは ffmpeg -layouts を参照
6桁のファイル名がついたシーケンス画像から動画を生成したいんですが、入力画像の拡張子の種類がそれぞれシーケンスでpng/jpg/jpeg/gifの4パターンあります
それぞれの拡張子を記述したバッチでは正常に変換できます
全ての拡張子に対応したバッチにしたいので、入力ファイルを拡張子をワイルドカード[%06d.*]で表現してみましたが画像ファイルを読み込んでくれません
ffmpegで拡張子をワイルドカードで指定するのは無理ですか
ffmpeg -r 30 -i %06d.* -vcodec libx264 -pix_fmt yuv420p out.mp4
そんなことよりも、imagemagickとかで先に画像形式を統一させる方が早いんじゃねーかと思う
>>684
情報ありがとうございます
>>683
graphicsmagickを入れてあるので試してみます 1920x1080のサイズの動画があったとして
FFMpegを使って、
動画の周りに10ピクセルの黒い枠線をつけて
1940x1100のサイズの動画を作成したいのですが
どのようにすれば良いですか?
-vf fillborders=left=10:right=10:top=10:bottom=10:mode=fixed:color=pink
Raspbianのaptにはffmegなかったのにいつのまにかaptからインストール出来るようになってる
いろいろ試しているのですが、、まったく解決できず、、、再度の投稿となって申し訳ないのですがマイク入力のミックス対応する方法をどなたかご存知ないでしょうか。
※いったん、マイク入力を別の音声ファイルにして後で結合してみたのですが、PC音が無音のところでのマイク入力は聞こえない状態でした
同じコマンドで音声ファイル2種類の合成してみて比較するとか。
あるいはlinuxみたいちアーキテクチャ違うPCで同じコマンド使って比較してみるとか。
USBメモリとかDVDブートならすぐ試験環境作れるよ。
>>688
ありがとうございます。
うまくいきました >>688
すいません、できたと思ったのですが
1920x1080だったとしても
出力された動画も同じく1920x1080なので
黒く塗りつぶした部分の動画が隠れてしまうのですが・・・
予め解像度を1940x1100に上げるにはどうすれば良いですか? 試したわけじゃないけど
-s 1940x1100
で出来ないか?
>>694
うまくいきました。
ちなみに、解像度が固定だったら良いですが
どんな解像度のファイルが来るか不明の場合
毎回、ffmpegかffprobeで解像度を調べる必要がありますが
元の解像度から+20するみたいな設定はできないでしょうか?
ffprobe -1 file.mp4 -show_streams -printformat json | jq .streams[].width
後半はうろ覚え
jsonで動画情報書き出して、それをパースして数字だけにしてシェルスクリプト で加算するように組むとか
ところで便乗質問だけど、-s オプションと-vf scale オプションの違いって何でしょうか。
というか余白付けるんならpad使うんじゃないの?
今はFFmpeg試せないからオプションは提示出来ないけど
>>695
まだ見てるか分からんけどこれはどう?
ffmpeg -i "%~1" -vcodec utvideo -vf "pad=iw+20:ih+20:10:10" "%~dpn1_pad.avi" >>698
しょへえええ
パーフェクトでした
ありがとうございます。
アップデートのオプションってある?
youtube-dlの-UみたいにDLして更新ファイルの差し替えまでやってくれるやつ
chocolateyでバージョン管理すればいいかと
choco upgrade ffmpegで一発
ffmpegは勝手にアップデートされると怖い。
互換性無視のオプションとかを仕込まれたことが何度あったことか。
これ使いこなせたら無敵の人になれるのかな
音声抽出と動画カットくらいしか使った事ねーや
俺なんか編集はAviUtlでやって、エンコくらいでしかこのソフト使わんわ
>>702
chocoって便利そうだね
ちょっと見てみる ffmpegのコマンドラインをすべて書く
元の動画の形式
カットした動画をどのプレーヤー(スプリッター、コーデック)で再生して確認しているかなど
上で貼ったURLそのままのコードを使っていますが。。。
ffmpeg -ss 00:10 -i D:\test.mkv -t 60 D:\test2.mkv
元の動画はOBSでエンコードしたH.264のMKVファイルです。
プレイヤーはWMP、Gom、MPCなどです。
動画のない箇所は、
MPだと、スキップされ、Gomだとフリーズした状態で、MPCは真っ暗になります。
ところで
http://santa.ldblog.jp/archives/41750596.html
にも書かれてあるようにFFMpegはキーフレーム単位でしか
無劣化カットすることができないのでしょうか?
MediaInfoで調べると
keyintは250になっています。
30FPSなので、8秒間隔でしか無劣化カットすることができない仕様になっていますか?
カットした部分だけ、再エンコードするようなことはできないでしょうか? -vcodecが抜けていました
ffmpeg -ss 4500 -i input.mp4 -t 60 -vcodec copy -acodec copy 1a.mp4
昔のことだからうろ覚えだけど確かにOBSのQSVで録画したファイルは挙動がおかしくて編集に不便した記憶がある
一回rawの.h264に分離してL-Smashでmp4に詰め替えて編集してたような
>>716
-anオプションを付けて
動画のみのmkvファイルにしてみましたが
やはり8秒間隔でしかカットできないようです
raw のh264とは別の方法がありますか? >>717
スマートレンダリングはFFmpegじゃ出来ないんじゃないかな
PEGASYS社の製品を買ったらどうだろうか smart cutter ってmkvには対応していないのですよね?
Linux向けのバイナリをWSLで実行することで解決しました。
ニコラボ様ありがとうございます。
ffmpegで動画の色を赤みがかった色にするとか
青みがかった色にするのってどのオプションを使えば良いですか?
検索してもよく分からなかったので
どなたか教えてください。
>>728
そのurlに書いてあることくらいしか知らないから頑張って読み解いてもらうしかないんだけど
16個のパラメータは4個ずつRGBA順にそれぞれ対応する色をRGBA順の合成比率で指定するっていうことで
例えば赤みがかったようにするには
ffmpeg -y -i input -vf colorchannelmixer=1.5:0.5:0.5:0:0:1:0:0:0:0:1:0:0:0:0:1 output
な感じで先頭4個のR成分の設定で赤が強く出るようにするといった感じ
自分がわかるのはこんなところなで求める結果が得られるかどうかはわからないけれど
いろいろいじってお好みの調整をしてね >>729
ありがとうございます。
eq=gamma_r
で所望のことはできました
ちなみにこれって画面の中の一部だけの色を変えることってできないのでしょうか?
二つの動画を上と下で合体させるようなことってできますか? 詳しくないんだけどffmpegが廃れることってあるんですか?
今後使えなくなる可能性というか
廃れる可能性は下から数えた方が早いソフトだと思うが
長い目で見たら廃れる可能性はあるけど今時点で有力な後継があるわけでもないしな。
リスクがあるとすれば突然お家騒動的なコミュニティトラブルが発生して訳わからないままサポート消滅とかかな。
ただそうなったとしても誰か引き取るだろう。
突如有力な後継ソフトが出てきたとしても自分ならコマンドオプションはffmpegと互換性を持たせるわ。
libavが立ち上がった時はどうなるかと思ったけど、
何も変わらんかったね。
CBRの音声ファイル(PCM 24bit)をなるべく劣化を抑えてVBRにする方法ってありますか?
YouTubeの仕様で高音質のopusにするにはVBRじゃないといけないらしく色々試してみてもどうもうまくいかず...
YouTubeにこの形式でアップロードしたら再エンコされないだとか高品質になるとかまことしやかに言われることあるけど裏付けあるのかね?
ちゃんとデータを示して証明してるとこ見たことないわ
10年位前、ニコだかようつべだったかは忘れたけど、
確かに一定の形式を整えれば再エンコはされないという話はあって、
解説書も出版されてた記憶がある。
今はオリジナルをいろいろ再エンコしてるみたいだから、当てはまらないだろうけどね。
>>740
CBRだのVBRだのは全く関係ないから無駄なことはやめとけ。
Youtubeでは、
A形式.MP4(H.264+AAC) B形式.WebM(VP9+Opus)
の2つの動画形式があるのだけど、投稿してすぐ生成されるのはA形式のみ。
B形式が生成されるのは、
条件1.元映像が1440pよりも大きい場合(2160pなど)
条件2.何らかの条件を満たした場合
のいずれかの条件を満たした場合のみで、条件を満たしていない場合は、いつまでたってもB形式は生成されない。
じゃあ「条件2の詳細はどうなってんの?」というと、公式発表はされてないし、よくわからない。
YoutubeがWebM(VP9+Opus)を採用しているのは、配信ビットレートを抑えて回線コストを節約するため。
ただ、MP4に加えてWebMまで生成すると、今度はストレージコストが上がってしまうということにもなる。
条件2はこれらを踏まえてコストを最小化することを目的として考えられているだろうし、
WebMの生成状況なども踏まえて推測すると、
・その動画の再生数がある程度増えた場合
・過去に投稿した動画の再生数実績が多く、今度の動画も再生数が多くなると見込まれる場合
・ある程度長時間の動画である場合
など、様々な複合的な条件を考慮して決められているんじゃないかと思う。
また、これらの条件判定の閾値やバランスなども、随時最適化のために変更されているのではないかと思う。
そんなわけでYoutubeの投稿者にできるのは、>>738にある条件を守ってなるべく高画質・高音質で投稿することのみ。
あとはまあ・・・再生数を増やす努力をすることくらいかな・・・。
一応4Kで投稿すれば条件1を満たすからOpusも生成されるだろうけど、そのためにわざわざ4K投稿するのもねえ・・・。
そもそもぶっちゃけ多くの視聴者にとってはOpus128kbpsもAAC128kbpsも大して変わらんだろうし。
少なくとも推測を含めて俺の知るかぎりではこんなところ。あってるかどうかは知らん。 >>741に加えて
WebM(VP9+Opus)が生成される時、MP4(H.264+AAC) からなのか、アップしたものからなのかもわからん
アップしたものは、まぁストレージの無駄だから削除されてるだろうと予想する >>744
Youtubeは元動画(あるいは元動画の高画質コピー)をサーバに保存しておいて、それを元にしてエンコードしてるみたいだよ。
だから4Kサポートよりも前に4Kで投稿しておいた動画が、今は4Kで見れたりする。
あと、時々MP4やWebMをエンコードしなおすこともあるようで、それも元動画からやってると思う。 エンコードし直しで同じフォーマットコードに違う解像度当てられておかしなもの落ちてきたことがあったな
>>745
無駄なことやってるなと思ってるのは俺だけなんか?
みんながロスレスで上げ始めたらどうなるんだろう
一般のyoutuberはロスレスなんて知らないか すぐ忘れてしまうから自分用メモ
tbr:ビデオストリームから推定されるフレームレート
tbn:コンテナのタイムベース
tbc:コーデックのタイムベース
>>740 です
たくさん助言いただきありがとうございます
あれからYouTubeの推奨設定にして色々試していたんですが全く切り替わる様子がなく、なんとなく動画を公開したところVP9/opusに切り替わりました
もしかすると動画を非公開にしていたのが原因かもしれないです 去年誰か高校野球のストリーミング配信をサクッと取ってくるコマンド書いてなかったっけ。
音声部の仕様が去年と変わったのかな。
今ちょっと試せない。
bsf外してやってみるとどう?
-acodec copy
とした時に、たまに
Error parsing AAC extradata, unable to determine samplerate.
になってしまうのはもう諦めた
エラーになる時は 代わりに -acodec pcm_s16le にするけど、
極力 copy にしたいので、せめてエラーになるかどうか判定する方法は無い?
ファイルにもよるが
前処理として先頭をカットするか、demux, remux してみれば?
高校野球のraspiでやろうとしたらffmpegがopensssl対応版じゃなかった。
ビルドするしかない?
別にffmpeg以外でもやれればやりたいけど分割wgetして結合してってのは一手間感じる。
何かコマンドあればいいんだけれど。
予備機のarmbian環境だったらaptで入れたままのffmpegでもできました。
windowsのffmpegでqsv使ってvp8エンコードする方法無いかな?
linuxだとvaapiで出来そうなんだけど…
5. timidity++で音色を確認。
http://timidity.s11.xrea.com/files/TiMidity++-2.13.0-w32.zip
をダウンロードし実行ファイルをC:\timidityフォルダーにインストール。
timw32g.exeのConfig->Preference->Playerタブ->Config Fileのところに
C:\timidity\timidity.cfgを設定。そして、C:\Windows\Media\flourish.midを
再生してみてMSGSよりも高音質で再生できていることを確認。
6. ffplay.exeでMIDIを再生。
コマンドプロンプトを起動して、まず環境変数を設定。
>SET MMPAT_PATH_TO_CFG=C:\timidity
そしてffplay.exeを起動。
>ffplay "C:\Windows\Media\flourish.mid"
しかし結果は、再生される音声はSin波のみで構成されたもので、サウンドフォントの
bennetng_AnotherGS_v2-3.sf2が適用されていない。
果たしてどうすればffmpegで正しくMIDIを扱えるようになるのだろうか。 ffmpegで比較明合成できないかな?
1枚の静止画と1つの動画があって、動画の全フレームに対して同じ静止画を比較明合成したい
全フレームを静止画として保存して、静止画に対して比較明合成し、静止画から動画を作成すればできるけど、さすがに面倒すぎるからこれを一発で済ませたい
自己解決
blend=all_mode='lighten'
でそれらしくなった。でもちょっと。うーむ
>>766
RGB同士なら色が正常だけどYUVだと色がおかしくなるね
どうやって回避すればいいんだろ YUVだからだったのか。ありがと
format=gbrap,setsar=0:1[rgb], [rgb]blend=all_mode='lighten'
ffprobe -print_format xml -show_format -show_streams -count_frames "input" > "output.xml"
で各ストリームのフレーム数を調べるとむちゃくちゃ時間がかかるの何とかならないかな。
inputが長さ3時間で2GBほどのmpeg2動画だと30秒ほどかかる。
>>770
FFmpegのスレで言うのもなんだけど総フレーム数を調べたいならMediaInfoのほうが良いかもしれんね
自分もFFmpegで調べようとしたけどなんか上手く行かなかった >>770
単にフレームだけカウントしてないからしかたないんじゃないの?
一秒で一万フレームもデータ確認してんだから 「お前はこれまでに撮ったフレームの数を覚えているのか?」
あるMPEG-1動画(MPEG-PSコンテナ)があって、
ffmpeg -i "test1.mpg" -vcodec copy -f mpeg1video "test1.m1v"
としていったんコンテナからエレメンタリストリームに取り出した後で、
ffmpeg -i "test1.m1v" -vcodec copy -f mpeg "test2.mpg"
としてコンテナに再格納した場合、test1.mpgとtest1.m1vとtest2.mpgとの3ファイルの
再生時間がわずかに異なるのだが、これを防ぐためにはどうしたらいいんだろうか。
>>773
ffmpegとmediainfoとではファイル内のストリームの順序が異なるので、
「ある一定数のフレームを均等に選択して画像として取り出すために
mediainfoでフレーム総数を調べて何フレーム置きに取り出したらよいかを
計算してffmpegでフレームを画像に保存する」といった連係プレイが
やりづらい。 ffprobeとmediaInfoCLIと、avs2pipemod -infoで調べたフレーム数が全て異なるケースもあったな。
>>782
フレーム数を数えてくれないので使えない。 便乗で悪いけど横軸に時間と縦軸にビットレート表示するツールなかったっけ?
>>780
>ffprobeとmediaInfoCLIと
今手持ちの.mkvファイルで比較してみたら本当だった。
あとそれからffprobeはアニメーションGIFのフレーム数も数えてくれるが
mediainfoはやってくれない。 データとして持ってれば拾ってきて表示するだけだけど、
本当に全ファイルスキャンしないと数えられないのは表示しないし、
本気で必要なら相応の時間がかかる
ffmpegでインターレース解除なしで24fps化は
-vf decimate -c:a copy
これだけでよろしいでしょうか?
あと24fps化した時に音ズレするんですが
映像だけにして上のコマンドを実施したら
元の映像からちょっとだけ動画の時間が減っているんですが
これは普通なんでしょうか?
hls m3u8からのtsの結合や、ts→mkvへの変換に使っているのですが
Non-monotonous DTS in output stream 0:1; previous: **083, current: **059; changing to **083. This may result in incorrect timestamps in the output file.
というエラーがログに出る事があります。
これは一体何を意味するエラーなのでしょうか?
hlsでの保存ですが、毎回同じところでエラーが出てるので、ソースに問題があるように思うのですが…
翻訳にぶち込んでも意味不明なので、勝手に推測すると
映像のフレームが足りずに、音声か映像を切るか水増して同期している
みたいな…?
またこのエラーが出ているファイルは音声がプツプツしたり、映像がカクカクするという事でしょうか?
すみません お聞かせください
ストリーミングのflv保存すると、たまに映像が乱れて見れなくなってしまいます
放送中はたまに引っかかる程度で見れるのですが、保存したものはだめです
場合によってはそこをカットすると、後半生き返ることもあるのですが多々失敗します
そのサイトは一回こっきりで配信を遡って見ることはできません
どうやら配信時にスムーズにうまくいっていないと現れるエラーのようなのですが
追加コマンドなどで回避できないでしょうか?
欠落した部分を欠落したままで動画全体を保持したいってことなら
画面表示しておいてカメラでキャプチャするとか
生で見ろ
録画はできない
みたいな感じでVHSすら無かった昭和にテクノロジーが逆行しとるな
レスありがとうございます
クロームのタブキャプチャするやつも買ったのですが
サイズのでかさやエンコードの見極め等やはりDLしたものの方が良いので最終手段ですね
その他DL手段として youtube_dl や ビデオダウンロードヘルパー等も試してみましたが結果は同じでした。
なにか送信がガタついてもうまい事やってくれるものはないですかね。。。
ガタついた時点で駄目なので、高速回線にするか、IPv6契約する
ブラウザのFlashプレイヤーのflv再生はかなり強力だから、多少のエラーがあっても再生できる
MPCやVLCなど、Flashを再生に使わないプレイヤーは、その点弱い
どんな保存方法でもダメって事は、保存した後に修復しないとダメかも
コマンドプロンプトのログが何千行にもなるので、
loglevelを一段階少なく、-v 24にしたら、
まースッキリ、エラー以外は何にも表示されない
動いてるか動いてないのかすら分からないから不安
今どの辺りを作業してるのか分からないから、たまに見に来て、もうすぐ終わりかな?みたいなのができない
( ;∀;)
バージョン3.0ぐらいまでは、進捗状況を一行で%で教えてくれてたのに
これに戻すオプションって、、、ありませんかね?
なんのことを言ってるかわからないけどv3.0を使えばいいのでは
レスありがとうございます
v3.0ですと、httpからの保存に難があるのですみません
でも、打開できました!!!
-v 24 -stats
これで、理想形になりました
>>801
レスありがとう ブラウザで見えてるのはそういう仕組みだったんですね
修復とはどんなものがあるのですか
FLV MetaData Injector は駄目でした
FLV Editor Liteで削るといける時もあるぐらいであんまりよろしくなかったです 別のコンテナに入れ替えちゃうぐらい
.tsとか、何故か再生できるケースが多かった
でも、.tsはシークが重い上にcopyなのにサイズが膨らむ
Xメディアレコードでtsに替えたところ、コピーだと駄目でしたが変換だといけました!
ありがとうございます!
copyじゃないって事は再エンコードしてるから、
ffmpegで読み込めさえすれば、どの形式でも再生は可能になるんじゃ…
わざわざtsにしなくても
試してみたところ変換だと他の形式でもいけるのがありました
コピーだとどの形式でも上手くいきませんでした
見れるようになっただけでとても嬉しいのですが、エンコードは疎いのでコピーでいけたら尚よかったんですけどねー
ffmpegで録画ファイルのエンコードをやっているのですが、
ふと最近になって見てみると、最初テストとしてエンコしてたときと同じ設定でも速度が大きく落ちていることに気づきました、。
ffmpeg ver4.0.0を使っていてradeonのH/Wエンコードを使っています。
環境で必要ありそうな情報はOSはWindows10 Pro,CPUはRyzen3 2200Gということぐらいでしょうか。
どうやら原因を調べてみると、GPU側がアイドル状態の処理力でエンコードをしているのが原因みたいなのですが、
どうにかしてエンコード中だけの間、GPU側フルロードにする方法はありませんか?
オーバークロックで固定してしまうと、録画PCなので消費電力とかの面でも気になりますし、同じような環境になっている方はいませんでしょうか。
対策方法などご存知の方がおられましたらご教示願えませんでしょうかm(__)m
>>811
-i ${video} -i ${audio} -g 35280 -vcodec hevc_amf -vb 7M -bf 6 -b_strategy 2 -refs 4 -deblock 0:0 -qdiff 8 -qcomp 0.7
-direct-pred auto -me_method umh -me_range 24 -subq 10 -trellis 2 -x264opts rc-lookahead=60:aq-mode=2:aq-strength=0.8:psy-rd=1.0,0.15
-acodec copy -bsf:a aac_adtstoasc -f mp4 ${output}
AutoConvertというツールを介して使っている都合、ffmpegに詳しくないので、テンプレートにあったのを少し変えた感じで使ってます。
いじってみた感じ、helpコマンドで出力されるオプションがうまく反映されなかったので、いろいろ加えていて無効なオプションも存在してると思います。。 >812
-vcodec hevc_amf なので -x264opts は使えない。
-g(keyint) 35280 は大きすぎる。特に理由が無ければフレームレートの10倍でいい。
ffmpeg -h encoder=hevc_amf
これで使えるオプションを確かめる。
出力データを何目的に使うかにもよるが、qp 関係と quality 設定 をすればよさそう。
>>813
返信ありがとう。
調べてる途中で-x264optは使えないことはわかっていたのだけど、下に書いてくれたquality設定を書いてもなぜか反映されなかったから、-vb 7Mって指定してる。
-gはとりあえず大きくしておけばいいかと思って大きくしてたw
もうちょっと調べてみてqp周りの設定をなんとかしてみるよ EPGStationからデュアルモノを主音声のみでKodiに流したいんですけど
%FFMPEG% -re -dual_mono_mode main -i pipe:0 -c:a aac -ar 48000 -ab 192k -ac 2 -c:v copy -tune fastdecode,zerolatency -f mpegts pipe:1
これだと15秒ぐらい待たないと再生が始まりません。速める方法ありますでしょうか?
-c:v copy -tune fastdecode,zerolatency
copy しながら tune って効果あるのかな?
普通は -c:v libx264 -tune fastdecode
のように使う。2つオプション使えるのかは試してない
早く再生させたいなら QSV を使うとか -c:v h264_qsv
youtube-dlで落としてると
skipping () segments ahead, expired from plalists
ってログが流れて落した動画のその部分が飛ぶのが怖いよぅ・・・
直し方お兄ちゃん教えて・・・
あ、youtube-dlもffmpegも最新です・・・
H.264の-crf 23がHEVCの-crf 28位とのことですが、同等画質の対応表か簡単な計算方法ありませんかね?
>>822
> H.264の-crf 23がHEVCの-crf 28位とのこと
それ単に--crfのデフォルト値がx264だと23、x265だと28ってだけでしょ。
画質が同じになるってわけじゃないし、ソースによっても変わるので計算方法なんてあるわけがない。 いや同等って騙ってたよ
絶対後者の方が汚いと思うが
自分でサンプル動画3個ずつとか作ればすぐできるじゃん
>>824
> いや同等って騙ってたよ
誰がどこで? >>823
絶対同等である必要はなく、既に検証済みでよく知られてるおすすめ対応値みたいなのがないかなと。 絵の傾向が違うから無理かと
それにx264もx265もデフォのオプションでは低ビットレートに向いてないから
なおさら無理
>>816
h264_qsvもQSVEncC使っても15秒ぐらいはかかってしまうんですね… >>831
4.1ってAV1のエンコードだけでなくデコードもできるようになった? >>833
> なにか勘違いしてるようだが、libaomによるAV1デコードならとっくにサポート済み。
うお、そうなのか。
それじゃAOMを個別にコンパイルする必要は無くなったのね ここしばらくaviutlで音ずれに悩まされてたんだけど
もしかしてファイル名にDELAY -○○msが含まれてたら
DELAY 0msになるように補正されるように仕様変更てる?
デュアルモノなaacをデュアルモノなwavにffmpegで変換
それをavisynthでモノラル化してaviutlで読み込みという手順なんだけど
aac分離時に自動指定さるDELAY値を無効にすると映像と音がピッタリ一致することに気が付いた
持ってるデジカメが
・FullHD 60p
・4k 24p
の2つの動画モードをサポートしてるんだけど
近い将来の技術革新を見越したらどっちのモードで録画しておくべきだろうか?
フレーム補完技術の方が完成度が高いか
はたまたアップスケール技術の方が完成度が高くなるか・・・
そんなん撮る物と好みによるとしか…
個人的には30p以下の動画嫌いだから前者選ぶけど
>>838
やっぱ前者か
60Pは一度見ちゃうとその滑らかさが癖になる
>>839
フレーム補完もアップスケーリングもffmpegのメインテーマぞな 質問失礼します
FFmpegでアップスケーリングする際のデフォルトアルゴリズムはBicubicらしいのですが、係数aの値は-1.00なんでしょうか?
a=-1.00もしくはa=-0.50~-0.75が普通らしいのですが、調べても分からなかったのでどなたかご教示ください
アルゴリズムとしての標準は0.3と0.3じゃないの
concatでmp4を連結する時に、継ぎ目にチャプターで飛べるようにするにはどうすれば
チャプターを書いて動画と合わせれば
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
>>843
mkvになるけど、mkvtoolnixは連結した動画にチャプターを自動埋込する機能がある。
このファイルから、チャプターファイルをエクスポートして、ffmpegとかで使えるのかな? ffprobeあたりでdurationを調べて、スクリプトで受けてmetadataを吐いて、
みたいなことをすればできるんだろうけど、
そんな面倒なことを各自でやるのは明らかに無駄なので、
そんなオプションがあるだろうと思ったけど無さそう
それならパイプを使ってffmpeg.exeに渡してあげればいいんでない?
-bsf:a aac_adtstoasc
これって何の為に入れるんですか?bitstream filterってのが何なのかそもそも分かってません
1説明
このドキュメントでは、libavcodecライブラリによって提供されるビットストリームフィルタについて説明します。
ビットストリームフィルタは、符号化されたストリームデータに対して作用し、復号を実行することなくビットストリームレベルの変更を実行する。
2.1 aac_adtstoasc
MPEG-2/4 AAC ADTSをMPEG-4 Audio Specific Configurationビットストリームに変換します。
このフィルタは、MPEG-2/4 ADTSヘッダーからMPEG-4 AudioSpecificConfigを作成し、ADTSヘッダーを削除します。
このフィルタは、AACストリームを生のADTS AACまたはMPEG-TSコンテナからMP4A-LATM、FLVファイル、またはMOV / MP4ファイルや3GPやM4Aなどの関連フォーマットにコピーする場合に必要です。MP4A-LATM、MOV / MP4、および関連するフォーマットには自動挿入されます。
黒帯(上下、左右)を削る場合ですが、皆様は黒帯のサイズ(pixel?)をどのように
測っていますか? コンテンツによってまちまちだとものですが。
>>854
key_frameとクロップはAvidemuxで計ってる。 変換ビットレートを入力動画の半分のサイズにしたいのですが毎回-bで手打ちで入力するしかないのでしょうか?もし良い方法をご存じでしたら教えてください
>>858
バッチファイル書けばいいんじゃない?
ソースのビットレートをffprobeで調べて、その半分のビットレートを指定すればいいのでは。 20181018以降のffmpeg static版でnvencがエラー起こして出来ないんですが同様の症状について知ってる人いますか?
win7 gtx1060使用
cmd で ffmpeg -i a.ts -c:v hevc_nvenc out.mp4と書いてます
ちなみに20181016版までだとエンコード可能でエラー見たらCannot load cuDeviceGetUuidとなってました
>>860
GTX1060のドライバーのバージョンは? >>861
最新のやつに上げたら出来ました
単純な見落としでしたありがとうございます シネスコの上下クロップして字幕(sup)の位置や比率を弄りたいのだけど
-c:s 関連の設定で詳しく書いてある所どこかありますか?
>>862
んー、一応問題のあったドライババージョンを聞いておきたかったのだが。今からでもわかれば教えてほしい。
ちなみに>>860の問題原因はエラーメッセージと期間指定でググれば一発で出てくるこれだと思う。
#7530 (cuviddec/nvdec/nvenc: driver checking errors) ? FFmpeg
https://trac.ffmpeg.org/ticket/7530
新しめのffmpegバイナリを古いドライバで使うとエラーになるという問題。
11/3にnv-codec-headersで修正されてるみたいだけど、Zeranoe版バイナリのReadmeを見ると
12/20のバイナリでも20181017-5054a06のnv-codec-headersを使ってるようなので、問題が起きる。
ググって調べた範囲での推測だけどね。 >>864
game ready driver 391.35でした >>865
ありがと。最低でも5月以降、できれば9月以降ってとこみたいね。
Windows
391.35 : 2018.3.27
397.93 : 2018.5.24
411.63 : 2018.9.19 (411.31は不明だった)
---
FFmpeg/nv-codec-headerst
https://github.com/FFmpeg/nv-codec-headers
Corresponds to Video Codec SDK version 8.2.15.
Minimum required driver versions:
Linux: 396.24 or newer
Windows: 397.93 or newer
Optional CUDA 10 features:
Linux: 410.48 or newer
Windows: 411.31 or newer ffmpeg -v 24 -stats
2台のPCでコマンドプロンプトの動きが違う
Win10Proはエラー時のみ+進捗1行 これが良い
Win10は-stats付けると、-v 24がシカトされる…
なんかコマンドプロンプトの枠の大きさも違うし
ffmpegのバージョンは4.1と4.0.2で試したけど同じ
謎です…
FFmpegを使って、動画ファイルのメタデータのコメントに文字列を埋め込みたいと考えています
http://nico-lab.net/adding_metadata_with_ffmpeg/
このページなどを参考にして、
iniファイルから読み込む方法
ffmpeg -i D:\input.mov -i D:\ffmetadata.ini -map_metadata 1 -c copy D:\output.mov
コマンド中で文字列を入力する方法
ffmpeg -i D:\input.mov -metadata "comment"="hogehogeほげ" -c copy D:\output.mov
を試しました。
埋め込まれたかどうかは
エクスプローラー上の右クリックメニューと
ffmpeg -i input -f ffmetadata ffmetadata.ini
というコードで確認しています。
MKV MP4 WMV などは、いずれの方法でもうまくいったのですが
MOVで試すと、FFmpegでは埋め込まれた情報が確認できるのですが、
エクスプローラー上の右クリックメニューでは情報を見ることができません。
また、なぜか全角文字が文字化けしてしまいます。
文字化けの問題はiniファイルのフォーマットをUnicodeではなくShift JISにするとうまくいきました。
しかし、エクスプローラー上で見れない問題は何とかならないでしょうか?
あと、3GPも試してみたのですが、
こちらのエクスプローラーでは見れず、なぜかFFmpegでも見ることができません。
MediaInfoを使えば見ることはできるのですが、
せめてFFmpeg上でも見れるようにできないでしょうか?
FFmpegは最新版を使用しています。
散々、調べてみたのですが、情報は見つかりませんでした
どなたがお教えください。 MOVや3GPを使う人っていまどきいるの?何のため?
って話じゃないのかな知らんけど
単なるコンテナとしての.movは現役で生きてるよ
中身はHEVC/AACだったりApple ProRes系統(今はこれの受け渡しに使うのが最も多い)だったりするけど
>>868です
batファイルで、
ffmpeg -v 24 -stats 〜とやっているのですが、(片方のPCだけ)-statsで進捗状況が一行になってくれず途方に暮れております
皆様の挙動は一行でしょうか?経過とともにどんどん行が増えて行く感じでしょうか?
ffmpegのバージョン関係なくこれです。
>>873
それはコマンドプロンプトの設定に起因してるからFFmpegは関係ないと思う ゲームの録画をする際、音声は5.1chサラウンドでやってみたい
ステレオ録音なら -ac 2 のオプション付けるから単純に -ac 5.1 に変えてみたけど
> Expected int64 for ac but found 5.1
とか言われて拒絶された。
-ac 6 を指定してみたら今度は通って録画が始まって喜んだのもつかの間。
録画したMP4動画ファイルをAudacityで確認してみたらオーディオストリームは
6本あったもののちゃんと録音されていたのは最初の2本だけ、つまり実質ステレオ録音だった。
どうしたら5.1chサラウンドを忠実に録音すること出来るかな?
ちなみに打ったコマンドは以下の通り
ffmpeg.exe -f gdigrab -r 30 -draw_mouse 1 -video_size 1280x960 -i desktop -f dshow
-i audio="ステレオ ミキサー (Realtek High Definit" -c:v h264_qsv -pix_fmt yuv420p
-q 30 -c:a libfdk_aac -ar 48000 -ac 5.1 -b:a 192k -f mp4 "test.mp4"
>>881
音声くわしくないけど適当に並べ立ててみる。
・ゲームの音声設定が5.1chになってないとか?
・オーディオデバイスが5.1chに対応していないとか?
・ステレオミキサーって名前に「ステレオ」ってついてるけど5.1chを扱えるんだっけ? ffmpeg -list_options true -f dshow -i audio="ステレオ ミキサー (Realtek High Definit"
これでサラウンドがないとサラウンドで録音できない
PS4とかのサラウンドならHDMI入力すればサラウンドになりそうだが詳しくは知らない
>>883
こんな結果が返ってきたけどサラウンドは無いってことかな?
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
[dshow @ 0000000000556f40] DirectShow audio only device options (from audio devices)
[dshow @ 0000000000556f40] Pin "Capture" (alternative pin name "Capture")
[dshow @ 0000000000556f40] min ch=1 bits=8 rate= 11025 max ch=2 bits=16 rate=44100
Last message repeated 22 times
audio=繧ケ繝・Ξ繧ェ 繝溘く繧オ繝シ (Realtek High Definit: Immediate exit requested
>>882
一応ゲームでは5.1chサラウンドは有効になってる(リアスピーカーから背後の音が聞こえてきてる)
この感動をそのままキャプチャーしたいわけだが・・・ >>885
ああ、そういうことorz・・・
「ステレオミキサー」ってまんま「ステレオ」なのね
音のためだけにHDMIキャプボ導入するのもなぁ・・・
はよ「ステレオミキサー」は「サラウンドミキサー」に進化せんかな(´・ω・`) 元々5.1chの音源が取れてないって話だから、音声チャンネル操作の話とはまた別だと思う。
>>887
>>888さんの言うとおりサラウンドのキャプチャーの段階で失敗してるっぽいんだよね
ステレオミキサーがサラウンドもサポートしない限り単純キャプチャー方式じゃダメっぽい >>890
うろ覚えだけどOBS Studioはたしかステレオミキサーに頼らず独自の録音方式を採用していたような
でもOBSもベースはffmpeg使ってるからやろうと思えばffmpegでもできるのかな? OBSは単に音声の入力/内部処理/出力でサラウンド音声を扱えるだけ(凄いことだけど)であって、
5.1ch音声をどうキャプチャするかというのはまた別問題だと思う。
必要なのは
・5.1chに対応した録音デバイスを作る
・ゲームの5.1ch音声がその録音デバイスに流れるようにする
の2点であって、それができればその録音デバイスを使ってffmpegでもOBSでも5.1ch音声を録音できるようになるはず。
この作業に必要なのが、下記のような仮想オーディオデバイスの機能を持つソフト。
「Voicemeeter Banana」 https://www.vb-audio.com/Voicemeeter/banana.htm
「Virtual Audio Cable」 https://vac.muzychenko.net/en/
前者のBananaの方が便利で使いやすそうに思えるのでそっちで説明すると、
・インストール&再起動
・再生デバイスに「VoiceMeeter Input」ができているのでそれを規定(デフォルト)にする
・VoiceMeeterの画面右上の「HARDWARE OUT」で、出力A1にサラウンドスピーカー(の再生デバイス)を割り当てる
・VoiceMeeterの画面中央の「VIRTUAL INPUT」のVAIOの方(「VoiceMeeter Input」に対応)で、
出力A1とB1(録音デバイスの「VoiceMeeter Output」に対応)に出力するよう設定する
・録音デバイスに「VoiceMeeter Output」ができているので、ffmpegやOBSでそれを指定してキャプチャする
といった感じで、サラウンドキャプチャが可能になるような気がする。
上の手順はざっくりした流れなので、実際にはデバイスのチャンネル設定とか、
他の入出力デバイスの設定とか、チャンネル変換の設定とかも必要になるかもしれない。
そのへんはドキュメントとか見てなんとかしてくれ。
実際やったわけじゃないけど、>>890を元にして調べた限りではこんな感じな気がする。
間違ってたら指摘してくれ。うまくいったなら、その報告もしてもらえるとありがたい。 素人質問で申し訳ないのですが、h264_vaapiエンコでhwaccel vaapiと同時にソフトウェアデインターレスフィルタの
yadifを使うことはできないのでしょうか?hwaacelがあると速度があがるのでできればあったほうがいいのですが。
ffmpegで異なるフレームレートの動画を連結させようと思ってhttp://fft est33.b log.f c2.co m/b log-en try-5 3.html こちらの方法を参考にして
1.m p4,fps,29.970
2.m p4,fps,59.940
3.m p4,fps,59.940
4.m p4,fps,29.970
5.m p4,fps,29.970の動画を
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -i 5.mp4 -filter_complex "concat=n=5:v=1:a=0" -an -vsync 0 -r 60000/1001 output.mp4
こちらで音声だけ外してやってみたんですが音声を
ffmpeg -f concat -safe 0 -i 動画結合mp4.txt -c copy -vn 連結.m4a
こちらで連結させようとしたらNon-monotonous DTS in output streamがでて音声ファイルがおかしくなります。
個別に音声だけ抜き出して動画結合mp4.txtに書いて
ffmpeg -f concat -safe 0 -i 動画結合mp4.txt -c copy 連結.m4a
こちらでもやってみたんですがNon-monotonous DTS in output streamがでて音声ファイルがおかしくなります。
これはどうしたらいいんでしょうか?
あとffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -i 5.mp4 -filter_complex "concat=n=5:v=1:a=0" -an -vsync 0 -r 60000/1001 output.mp4
こちらのやり方は正しいんでしょうか?
他にいい方法はありますでしょうか? ffmpegでニコニコのHLSの動画を落とそうとすると、途中から403エラーになってしまう
多分、速すぎるのが原因だと思うので手加減したいんだけど、
何のオプションを使えばいいだろう
ハートビートではないっぽい
ffmpegの画面出力を適当にctrl-sで止めながらだとちゃんと完走できる
youtube-dlで落とせないからffmpegで、と思ったんだけど、
youtube-dlでもまた落とせるように戻ってた
ここ最近のニコニコの迷走ぶりが凄い
>>901
諦めてたけど、落とせるように戻ったんけ ffmpegで1920x1080ts動画をh265(VBR1500bps)に変換する場合gtx2070だとどのくいのfpsが出ますか?
ソース映像やリサイズやフィルターとかでも変わってくるだろうけど
10倍速くらいは出ると思うよ
gtx1060のnvencでfps360くらい12倍速くらい出るから2070ならもっと速そう
動画の上下左右に黒い枠線を付けたいと考えています。
ビデオフィルターの設定で
"pad=iw+2:ih+2:1:1:black"
を入れると表示することができるのですが、
右と下側にしか枠線が表示されません。
"pad=iw+4:ih+4:2:2:black"
のように、枠線を太くすると上や左側にも表示されるようになりますが、
やはり右や下の枠線が上や左よりも太くなります。
どうすれば、同じ太さの枠線を表示することができますか?
あーそれ俺もハマったわ。
理由は結構単純なことだった。
>>908
枠の太さが2の倍数しか受け付けないということでしょうか?
2の倍数以外に設定する方法ってありませんか? >>910
全体のピクセル数が2の倍数である必要があるのは分かりますが、
右に1ピクセル、左に1ピクセル、合わせて2ピクセル増やせば
全体としては2の倍数からは外れないはずです。
そのはずなのに、2ピクセルずつしか増やせないのですが・・・ >>911
やったことないから知らんけど、一度RGB系のピクセルフォーマットにすればいいとかそういう話じゃないの? >>912
なるほど、YUVフォーマットというのが2ピクセルおきにしかカラー情報をもたせることができないのですね。
FFMPEGを使えば、RGBに変換できるのでしょうか?
検索して調べてみたのですが
それらしいページは見つかるのですが
具体的なコードが見当たりませんでした。
どなたか教えてくださいまし。 いまのコマンドはどうなっているのか
フィルタコマンドだけではなく全部書いてみて
"""D:\ffmpeg.exe"" -y -i ""D:\xxx.mkv"" -vf setpts=PTS*1,""pad=iw+8:ih+8:4:4:000000"",setpts=PTS/1
-vcodec libx264 -preset ultrafast -crf 20 -acodec copy ""D:\xxx2.mkv"" "
こんな感じです
setpts フィルタを掛ける意味がよく分からないが
rgb の h.264 の動画で出力するならこうなる
"""D:\ffmpeg.exe"" -y -i ""D:\xxx.mkv"" -vf setpts=PTS*1,format=gbrp,""pad=iw+8:ih+8:4:4:000000"",setpts=PTS/1
-vcodec libx264rgb -preset ultrafast -crf 20 -acodec copy -pix_fmt bgr24 ""D:\xxx2.mkv"" "
ffmpeg -h encoder=libx264rgb
>>916
なるほど、大幅にコードの変更が必要なのですね
確か、YUVの方がRGBよりもファイルサイズが小さくなるので、
動画で一般的に使われているのですよね
それなら、2の倍数は諦めてYUVを使った方が良いでしょうか。。 >>917
黒枠つける処理の時にRGBになってればいいだけであって
出力までRGBにする必要は別にないから、一般的なyuv420pで出力したいなら
以下のようにすればいいんでないかい。(黒枠つけた後の解像度が2の倍数であることが前提)
"""D:\ffmpeg.exe"" -y -i ""D:\xxx.mkv"" -vf setpts=PTS*1,format=gbrp,""pad=iw+8:ih+8:4:4:000000"",setpts=PTS/1
-vcodec libx264 -preset ultrafast -crf 20 -acodec copy -pix_fmt yuv420p ""D:\xxx2.mkv"" " >>918
なるほど、ありがとうございます。
後ほど、試してみます
ただ、RGB⇔YUVを何度も繰り返すと
画質が劣化すると書かれてありました・・・ >>919
そりゃそうだけど、何度も繰り返すわけじゃないし、奇数の黒枠つけたいなら一度RGB化するしかなさそうなんだから、
後は自分の取捨選択でしょ。好きにすればいいんじゃないの。
-vf の前に -sws_flags +accurate_rnd+bitexact をつけとけば誤差を減らせるかもしれないけど、
まあ見た目でわかるほどの違いは出ないだろうし、お呪い程度かな。 そちにはコーミングノイズ外さずに再エンコした動画をとって遣わす。
ノイズを無くすってことは、よりオリジナルから離れるってことさ…
この前さ、ffmpegって打ったら、
ははもせいき(母も性器!?)って出た
魚眼レンズで撮ったような
歪んだ動画を真っ直ぐにしたいのですが
こういうことってffmpegでできますか?
ffmpeg 魚眼
で検索した限りは情報は見つかりませんでした。
>>932
ありがとうございます。
うまくいきました。
ちなみに、これで補正すると長方形からはみ出た部分がクロップされてしまうのですが、
動画のない部分は緑色などで塗りつぶされていて良いので
クロップせずに補正することはできないでしょうか? まず画面を縮小してからフィルタをかければいいんじゃないですかね
エンコードした動画ファイルをMediaInfoで調べると
Writing application : Lavf58.17.101
Writing library : Lavf58.17.101
Writing library : x264 core 155 r2901 7d0ff22
とあるのですが、
FFmpegを使って、これらを別の任意の文字列を置き換えることってできますか?
>>936
書き換えではなく削除でも良いので
どうかお教えください。 とりあえずファイルを右クリックして素早くキーボードの「D」→「Enter」とおせば
OS標準の機能で削除できる
ちな素早く押すのがポイント
ffmpegかffmbcで、XAVCのTCや他のメタデータって、まともに扱える?
例えばXAVC QFHDをTC引き継いでXDCAM HDにするとか
win7 x64です
ffmpegを実行してるとメモリを720MBぐらい使うんですがこれは普通ですかね?
オプション指定や、ffmpegのバージョンを変えたりして上限を下げることってできないでしょうか
普通かどうかは搭載しているメモリ容量、読み込むファイル
フィルタやエンコーダ次第で増えたり減ったりするから
環境とコマンド内容を書かないとわからない
他の作業に支障がない限りはむしろメモリたっぷり使って欲しいのにディスクがりがりやってる弊害のほうが大きく感じるわ。
64bit環境でたかだか720MB程度のメモリ使うとなんか支障が出るの?
CPUの負荷が〜、メモリーの使用量が〜、SSDを使わないようにHDDへ〜
何のためにそのPCスペックにしたんだと…
おれのcore2duoメモリ3GBだから700いかれると少し辛い。
それでもsataのSSDにしてあと5年は戦える。
windows10の次のOSが良かったら買い換えようかな。
一応MSは10以降は出さないって明言してるぞ、そんなこと言ってると永遠に買い換えられない
今のOSがサポ切れする前にはちゃんと移行しような
Win7ももう1年切ってる
ネットカフェのPCもWin10に移行してるし、もう10にしないと遅れてるなって言われても仕方ない。
>>949
あくまでも「最後のWindows」っていうだけの話だったと思うけどね
どうせ「Windows」の名を冠さないOSは出すと思うよ >>951
>遅れてるなって言われても仕方ない。
このフレーズに乗っかった人ほど、アレな気がするのは俺だけか? amd(radeon)でのgpuエンコーダって
最近は効率良いの?
古いドキュメントだとパフォーマンスが良くなさそうな記載があったけど
>>958
RyzenAPUでしか試してないけど悪くはないんじゃね
Archlinuxとか最新を追っかけるディストリじゃないと厳しいけどさ
まあコアが充分にあるんでデコードだけGPUに投げてソフトエンコしてるけども AMDのVCEは Intel(QSV) / NVIDIA(NVENC) と比べると
・Bフレームが使えない
・HEVC main10のエンコードができない
・>>960にあるように、圧縮効率がいまいち
という感じかな。 nvencも1000番台じゃなくて2000番台じゃないとBフレーム使えないのよね
ありがとうございます
GPUパワーは ffmpeg と bluestack 以外ほとんど使わないので
素直にGeForceにしときます
>>962
それはHEVCでの話だね。H.264なら結構前のものからBフレームが使えるはず。
VCEだとHEVCはもちろんのこと、H.264でもBフレームが使えないらしい。
以前の機種だとH.264では使えてたらしいんだけど、Polaris/Vegaで使えなくなったとか。 H.264でいい人はQuickSyncでもなんでもいい
コスパでいうと下位中古Radeonには勝てぬ
出力結果の好みで選んだ方がいいと思うが
比較サンプルとかあんまねえしなあ
モーションブラーってのは基本的には
「該当フレームの撮影のためにシャッターを開いている間に生じた動きによるボケ」
だから、単純なフレームブレンドとはちょっと別のものな気が。
A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4
↓
A1 B(A2〜B4を重み付きブレンド) C(B2〜C4を重み付きブレンド)
みたいな感じでフレームを減らす形でブレンドするというならまだわかるけど、
A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4
↓
A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 (各フレームにモーションブラーをつける)
という感じでフレーム数を減らさずにやりたいなら、AvisynthのMFlowBlurのように
フレーム間の動きを推定してブラーをかけるということをやらないとダメなんじゃないかな。
ffmpegで無理矢理やるなら、minterpolateでフレーム補間して、補間フレームをブレンドするという形でできるかもだけど、
MFlowBlurを使ってみたほうがいい気がする。
tmixにweightsパラメータあるからそれ使えばいいよ
tmix=frames=6:weights='1/243 1/81 1/27 1/9 1/3 1'
後はフレーム数増やしたり各フレームの重みづけをいじればそれっぽく見えるよ
たぶん
ありがとう
tmixを試して見て、納得出来ながったらavisynthも試してみます
>>972
ありがとう
僕の環境では分数では指定できず、少数で指定しました(.02 .1 .3 1 みたいな)
理想通りに上手いこといけました! 既に説明されている通りフレームブレンドとモーションブラーは別物
得られる視覚効果は全く違う
細かいこと気にするのはハゲだけど
かなり古いけどニコ動のsm9962044にaviutilのフレームブレンドとmvtoolsのモーションブラーの比較動画がある
宗教的な理由でAvisynthが使えない人も居るんですよ!
cfr60fpsのファイル2つを
-f concat -c copyしたら
vfrになってしまうんですが、これじゃだめですか?
-vsync 1 また -vsync cfr でもだめでした
ffmpeg v4.1で
ffmpeg -i "input.ogg" -acodec pcm_s24le -f wav "output.wav"
として作ったoutput.wavを、SoundEngine Free ver.5.23で
開こうとすると「ファイルを開くことができません。壊れて
いるか対応していない可能性があります。」というエラーが
出ます。ffmpegが出力するwavコンテナは不正なフォーマット
なのでしょうか?
なんで余計なオプションつけたがるんだろう
まずはインとアウトでしょ
24bitのwavファイルを作りたいので
-acodec pcm_s24le
で正しいと思いますが。
wavコンテナのpcm 24bitは符号付きでリトルエンディアンの
はずでした。
お使いのハードが24bit 再生に対応していないってオチは?
そんなことはないと思います。なぜなら、SoundEngine付属の
WaveGeneratorで作った24bitのwavファイルは問題なく
SoundEngineで開けるからです。
サンプリングレートやチャンネル数でひっかかってるとかじゃないの。
出力したwavのMediaInfo情報ってどうなってんのよ。
SoundEngineの方がちゃんと対応していないだけ。
一応Windows公式のWaveフォーマットの解説によると、WAVファイル内の
FormatTagはPCMデータの場合WAVE_FORMAT_PCM(0x0001)を指定することに
なっているのですが、BitPerSampleが8,16以外の場合は
WAVE_FORMAT_EXTENSIBLE(0xFFFE)を用いることになっている。
(とはいえ通常どっちでも問題なく再生できる)
SoundEngineはFormatTagがWAVE_FORMAT_EXTENSIBLEに指定されているファイルは
読めない模様。SoundEngineに付属のWaveGeneratorの24bit出力が読めるのは
ファイルが上記の規則に従っていないため。
ちなみにffmpegの24bitPCM出力のFormatTagの部分をWAVE_FORMAT_PCM(0x0001)に
書き換えたらSoundEngineで読めたよ。
CODEC IDがWaveGeneratorで作ったのは1であるのに対して、
ffmpegで作ったのは00000001-0000-0010-8000-00AA00389B71
になっていました。
どうやらこれが原因みたいです。
ffmpegで作ったwavファイルをバイナリエディターで0x14バイト目にある
FE FF を 01 00 に直したらSoundEngineで開けました。
CODEC IDも00000001-0000-0010-8000-00AA00389B71から1に
なりました。
ちょっと古いバージョンの SoundEngine Free v5.21 だと
ffmpeg 4.1.1 で作った 24bit 44.1kHz 2ch のwavがそのまま普通に読めるけどな。
lud20220918110221ca
このスレへの固定リンク: http://5chb.net/r/software/1487682297/ヒント:5chスレのurlに
http://xxxx.5ch
b.net/xxxx のように
bを入れるだけでここでスレ保存、閲覧できます。
TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
>50
>100
>200
>300
>500
>1000枚
新着画像
↓「ffmpegならこちらへ 3 [無断転載禁止]©2ch.net YouTube動画>2本 ->画像>17枚 」を見た人も見ています:
・ffmpegならこちらへ 4
・ffmpegならこちらへ 6
・ffmpegならこちらへ 5
・ffmpegならこちらへ 7
・ffmpegならこちらへ
・ffmpegならこちらへ 8 (81)
・FFmpegをビルドしていたzeranoeが閉鎖
・ffmpegのビルド配布サイト、今日閉鎖
・製薬、卸の営業への苦情はこちらへ
・ティップネス南行徳 痴漢GGYの苦情はこちらへ
・スレ立てるまでもない猫の質問はこちらへ 13 [無断転載禁止]
・スレ立てるまでもない猫の質問はこちらへ [無断転載禁止]
・スレ立てるまでもない猫の質問はこちらへ16
・スレ立てるまでもない猫の質問はこちらへ [無断転載禁止]
・スレ立てるまでもない猫の質問はこちらへ 12 [無断転載禁止]
・スレ立てるまでもない猫の質問はこちらへ その2
・【BIGXも】アルパイン ナビ・オーディオ Part8【こちらへ】
・★スレ立てるまでもない犬の質問はこちらへPart115
・★スレ立てるまでもない犬の質問はこちらへPart111
・日夜日本のあちらこちら起こってる子供への虐待死では懲役3年くらいなのに
・【共産党・山添拓】北朝鮮はなんの理由もなくミサイルを打ってこない。もし撃ってきたら、こちらも困るけど向こうも困る。だからこそ対話
・17924 まともなジャニ話したい人はこちらへ
・スレ立てるまでもない猫の質問はこちらへ☆ミpart83
・【PSO2死亡w】最近のFF14の偉業がこちら
・★スレ立てるまでもない犬の質問はこちらへPart117
・★スレ立てるまでもない犬の質問はこちらへPart118
・2062年から来た未来人さん、こちらへどうぞ [無断転載禁止]
・【お止め組。】お止め処理議論スレッド 8【苦情はこちらへ】
・【お止め組。】お止め処理議論スレッド 12【苦情はこちらへ】
・【お止め組。】お止め処理議論スレッド 13【苦情はこちらへ】
・【お止め組。】お止め処理議論スレッド 17【苦情はこちらへ】
・【お止め組。】お止め処理議論スレッド 18【苦情はこちらへ】
・【お止め組。】お止め処理議論スレッド 10【苦情はこちらへ】
・統一教会「我々を叩くメディアにはもう我慢ならない ならば関係のあった機関をこちらから逆暴露する」 日本は地獄へ
・鶴ヶ島 坂戸 霞 日高 入間川からこちら限定◎その17
・気管支喘息 Part64【こちら人間気象台】 ©2ch.net
・【事例がこちら】イクメン増加でママ友疲れならぬチチ友疲れが流行中
・ポストの中からこちらを凝視してたら怖いラブラブキャラ
・立憲民主党の役員人事一覧がこちら、お前らこいつらに期待できる?
・【画像】大谷が毎日食べているメシがこちら これならケンモメソでもギリ作れるレベルぢゃないか?
・北朝鮮外相「日本が拉致問題にこだわるなら、こちらも“強制動員”問題を提起せざるを得ない」
・【SAO】メ[ドアート・オンラインの全OPEDランキングがこちら。
・【通貨急落】トルコのエルドアン大統領「あちらにダラー(ドル)があるなら、こちらにはアラー(神)がいる」
・【心眼】たまたま洗濯したらこうなった 心が汚れた大人には別のモノに見えるクッションがこちら
・【悲報】ロシア人と結婚した日本人男性がこちら・・・お前らこれ見ても外国人でいいやとか言えるんか?
・新護衛艦30FFM〜03FFMまで2社で8隻を建造する三菱重工業と三井造船が提携へ
・祟りと言うならこの世は祟りそのもの
・為替やるならこの本読め Part47
・為替やるならこの本読め Part44
・無料レンタルサーバーならこれ
・APEXlegends、ソロモードとデュオモード追加へ
・青春映画撮るならこの子だなってメンバー
・嫌儲民ならこれだけは観ておけっていう映画
・【PSO2】やっぱクソスレ立てるならここだな…って
・入院患者の爺さん(75)「好きになった人が20個下の55歳」 一緒に話聞いてたおばさん「あかんやろ…ロリコンにならへん?」
・中国人ってアヘン戦争でイギリスに薬漬けレイプされたことは気にならへんの? 日清戦争で日本に負けたから日本を恨んでるけどどど
・博識で知られる嫌儲民ならここがどの場所か分かる
・お前らこのノートパソコンいくらなら買う?
・【発表会】BABYMETAL新体制、俺ならこうする
・【正論】中3女子「月5000円の小遣いでmusicFM無しにどうしろと?無料だからこそ色んな曲を聴くし好きなアーティストもできる」
・財務省文書書き換え 有識者「事実ならZ取り潰し。嘘なら朝日取り潰し」 どちらにしろ安倍政権勝利へ
・【芸能】加藤浩次「このままの体制が続くならこの会社を辞める。」 (動画あり)★3
・橋下徹さん「息子をころした事務次官を責めるのはやめろ!俺も息子が引きこもりならころしてた」
・日高屋ならこのレベルの餃子定食が650円で食える事実。これ地上の楽園だろ
15:50:04 up 16 days, 2:14, 1 user, load average: 6.93, 6.79, 7.25
in 0.070197105407715 sec
@0.070197105407715@0b7 on 122805
|