ffmpegならこちらへ 3 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
公式サイト
http://ffmpeg.org/
エンコード、ストリーミング配信を高画質高音質で行えるffmprg。
OSに拘らず対応コーデックが多い。
対応コーデックが多く、多彩なオプションを使用可能。
コマンドラインから使用することができる。
ffmpegならこちらへ 2
http://potato.2ch.net/test/read.cgi/software/1420916868/ 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エラーになってしまう
多分、速すぎるのが原因だと思うので手加減したいんだけど、
何のオプションを使えばいいだろう >>895
ニコニコはハートビートを送らないと切れるとかって話を聞いた気がする。
DLスレの過去ログでも探してみればいいんじゃないかな。
【DL】動画の保存方法総合スレ【保存】37GB
https://egg.5ch.net/test/read.cgi/streaming/1544282378/ ハートビートではないっぽい
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 をつけとけば誤差を減らせるかもしれないけど、
まあ見た目でわかるほどの違いは出ないだろうし、お呪い程度かな。 そちにはコーミングノイズ外さずに再エンコした動画をとって遣わす。 ノイズを無くすってことは、よりオリジナルから離れるってことさ… >>905
>>906
ありがとうございます!買い替えの参考にさせていただきます! この前さ、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でもなんでもいい h264しか使わないことが確定、当面4kは使わない見通しなのですが
https://twitter.com/Tsukumo_eX/status/1119128274536288257/photo/1
こんなの前提だとamdのコスパってどうなんでしょうか
中古ならもっと安いし、負荷かけて定格で回しても多分70W / 70℃超えないし(MSI Afterburner読み)
https://twitter.com/5chan_nel (5ch newer account) コスパでいうと下位中古Radeonには勝てぬ
出力結果の好みで選んだ方がいいと思うが
比較サンプルとかあんまねえしなあ そうなんですね
RX470あたり、負荷低いときの消費電力あんまり気にしなくて大丈夫そうですし
参考:http://androgamer.net/2018/02/16/post-8878/
画質は、そこまで重視してないので多分大丈夫です
さすがに大昔のGeForce 8600GTのCUDAには閉口しましたが モーションブラーをかけたいです
調べるとtblendで出来るみたいですね
https://nico-lab.net/tblend_with_ffmpeg/
ただ、それだと前後フレームしか出来ないですね
前3フレームとか、フレーム数を指定する方法ありますか? モーションブラーってのは基本的には
「該当フレームの撮影のためにシャッターを開いている間に生じた動きによるボケ」
だから、単純なフレームブレンドとはちょっと別のものな気が。
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がそのまま普通に読めるけどな。 このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 799日 6時間 44分 32秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。