ffmpegならこちらへ 8

2024/08/17(土) 05:12:15.30ID:KYglDkYF0
!extend:default:default:1000:512:donguri=1/2:

テンプレの内容は現状維持ですが
規制が増えているので貼り方が変わる場合があります
すでに1度立てようとして吸われています


前スレ
ffmpegならこちらへ 7
https://egg.5ch.net/test/read.cgi/software/1659701141/
VIPQ2_EXTDAT: default:default:1000:512:donguri=1/2: EXT was configured
2024/08/17(土) 05:19:57.56ID:KYglDkYF0
公式サイト
http://ffmpeg.org/

エンコード、ストリーミング配信を高画質高音質で行えるffmpeg。
OSに拘らず対応コーデックが多い。
対応コーデックが多く、多彩なオプションを使用可能。
コマンドラインから使用することができる。


ffmpegで使うコマンドは、オプションとフィルターが存在する。
これらが一つの行に混在して使われるため、両方に目を通さなければならない。
日本語の記事が無いものもあるので、機械翻訳を使うなどをして、ある程度自力で英語を読み取らなければならない場合もある。

ffmpegで使用できるOptions https://ffmpeg.org/ffmpeg.html#Options
ffmpegで使用できるfilters https://ffmpeg.org/ffmpeg-filters.html
ffmpeg Documentation (フルバージョン) https://www.ffmpeg.org/ffmpeg-all.html


散らばっている古い記事の中には、現在のffmpegのバージョンでは廃止されたオプションも存在する。
それらのオプションは実行しようとしてもエラーが返されるだけで、単純にエラーの原因の一つになるので
古い記事をコピペなどで流用する場合は、既に廃止されたオプションが含まれていないかどうかを注意する必要がある。
2024/08/17(土) 05:21:52.65ID:KYglDkYF0
>>2
ffmpegのドキュメントに関しては、
ffmpeg Documentation (統合ドキュメント-フルバージョン) https://www.ffmpeg.org/ffmpeg-all.html
これのみで全部の項目があるので、キーワード検索をする場合はこちらを使うと見つかる可能性が高くなる

以下、その一部の例

基本オプション https://ffmpeg.org/ffmpeg-all.html#Options

各コンポーネントに関するドキュメント(個別ドキュメントではなく、統合ドキュメント内の各項目の例)
Utilities                       https://ffmpeg.org/ffmpeg-all.html#Syntax
Video scaling and pixel format converter   https://ffmpeg.org/ffmpeg-all.html#Scaler-Options
Audio resampler                  https://ffmpeg.org/ffmpeg-all.html#Resampler-Options
Encoders and decoders (codecs)        https://ffmpeg.org/ffmpeg-all.html#Codec-Options
Bitstream filters                  https://ffmpeg.org/ffmpeg-all.html#Bitstream-Filters
Muxers and demuxers (formats)        https://ffmpeg.org/ffmpeg-all.html#Format-Options
Protocols                      https://ffmpeg.org/ffmpeg-all.html#Protocol-Options
Input and output devices            https://ffmpeg.org/ffmpeg-all.html#Device-Options
Filters                        https://ffmpeg.org/ffmpeg-all.html#Filtering-Introduction

ライブラリやAPIその他の個別ドキュメント等の詳細(リンク等)
https://ffmpeg.org/documentation.html
2024/08/17(土) 05:22:45.86ID:KYglDkYF0
ちょっと突っ込んだ使い方などの情報(各種ガイド、FAQ)
https://trac.ffmpeg.org/wiki


FFmpeg ドキュメント(日本語訳)
古いし、avconvの説明も混じっているが、新しいものを使わなければ今でも有用
http://fixedpoint.jp/ffmpeg/ffmpeg.html

日本語による基本的な使い方の解説
http://tech.ckme.co.jp/ffmpeg.shtml

日本語による新しいフィルタなどの情報
http://nico-lab.net/category/ffmpeg/


x264とffmpegのオプション対応の解説
https://sites.google.com/site/linuxencoding/x264-ffmpeg-mapping
5名無しさん@お腹いっぱい。
垢版 |
2024/10/01(火) 06:53:08.01ID:PX3JkQvA0
ffmpegでMP3ファイルとAVIファイルを結合する方法をbatで実現したいのですが、可能ですか?
6名無しさん@お腹いっぱい。
垢版 |
2024/10/01(火) 06:55:19.84ID:PX3JkQvA0
できれば変数を用いて実現したいです。
2024/10/01(火) 15:10:12.06ID:VRQ2+Vmu0
AVI(映像)に MP3(音声)を追加してAVI(映像+音声)にするという意味なら可能
詳細は「Merge audio video FFmpeg」でGoogle先生
8名無しさん@お腹いっぱい。
垢版 |
2024/10/01(火) 15:17:53.41ID:PX3JkQvA0
変数を用いた方法はありませんでした。
2024/10/01(火) 16:07:44.48ID:g5VAJIvW0
複数ファイルの連番処理したいの?
10名無しさん@お腹いっぱい。
垢版 |
2024/10/01(火) 16:28:34.77ID:PX3JkQvA0
そうではなくて一々ファイル名を入力するのが面倒なので変数でやりたいのです
やりたいことはAVI(映像)に MP3(音声)を追加してAVI(映像+音声)です
2024/10/01(火) 18:11:40.33ID:VRBX2/mB0
>>10
ChatGPTに聞いた方がかくじつ
2024/10/01(火) 20:41:26.04ID:vxURPcb30
必要なのはバッチやスクリプトの知識だな
13名無しさん@お腹いっぱい。
垢版 |
2024/10/01(火) 20:58:43.66ID:PX3JkQvA0
ChatGPTに聞いて作りましたが、動作しませんでした
2024/10/01(火) 22:15:49.09ID:VRBX2/mB0
>>13
どう動かなかったのかをまたChatGPTに質問する
具体的な環境やどういうエラーかとかここで質問するのとまったく同じことを質問する
の繰り返し


ffmpegでMP3ファイルとAVIファイルを結合するバッチコマンドを作成したい
ただしファイル名を変数を使って引数に指定したい
15名無しさん@お腹いっぱい。
垢版 |
2024/10/02(水) 08:20:07.89ID:aKtGWBun0
エラーコードを見せたり色々やったけどだめでした
ChatGPTでは無理でした
2024/10/04(金) 08:26:46.27ID:a3kpSaxB0
キチンとしたものができるかどうかは与えてる情報次第なんじゃないかな…
2024/10/10(木) 11:26:37.06ID:hpxuk1Jc0
vobsubの字幕のある動画を縮小すると字幕が表示されない
表示位置を固定すると、でかい字幕の一部が見える
プレイヤー側の問題な気もするけど、まともに取り扱えるプレイヤーが見つからないので、
縮小時でなんとかしたい

-canvas_sizeオプションを付けるという解決策が見つかるけど、エラーになる
本来ならそんなの付けなくても勝手にやってくれそうなものなのに
2024/10/10(木) 13:42:36.65ID:hpxuk1Jc0
-canvas_sizeを-iの前に指定するとエラーは出なくなる
でも何も変わらない
2024/10/10(木) 14:20:40.57ID:hpxuk1Jc0
自決しました
-c:s copy としていたのが原因で、dvdsubをdvdsubで再エンコードする必要があった
それだけでは駄目で、-canvas_sizeで元サイズを教えてやる必要もある

同じ画像字幕のpgsではそんなことする必要はなくて、vobsubでは必要
20名無しさん@お腹いっぱい。
垢版 |
2024/11/03(日) 19:35:59.76ID:uRcVW6Yi0
mp4で開始の5秒以降を
ffmpeg -ss 05 -i sample.mp4 sample_5.mp4
で出力できたのですが、音楽のビットレートが下がってしまいました。
音声のビットレートをそのままにしながら、上記のコマンドを流すにはどうしたらいいでしょうか?
2024/11/03(日) 21:13:45.53ID:6KIrzJ7B0
>>20
それだと再エンコードしているので -c copy を追加
22名無しさん@お腹いっぱい。
垢版 |
2024/11/03(日) 21:45:56.23ID:IbA3NUg50
>>21
ありがとうございます!試してみます!
23名無しさん@お腹いっぱい。
垢版 |
2024/11/08(金) 22:34:27.92ID:JayTcIIS0
ffmpeg.exe -video_size 1920x1080 -framerate 30 -f gdigrab -i desktop -f dshow -i audio="ステレオ ミキサー (Realtek(R) Audio)" -vcodec libx264 -pix_fmt yuv420p -acodec aac -map 0:v:0 -map 1:a:0 "desktop.mp4"

これで実行しても何も起きません。

ffmpeg.exe -list_devices true -f dshow -i dummy
で情報を取得した所
[dshow @ 00000207841d1780] "ステレオ ミキサー (Realtek(R) Audio)" (audio)
となっていたので問題ないと思うのですが?
24名無しさん@お腹いっぱい。
垢版 |
2024/11/08(金) 23:52:55.22ID:JayTcIIS0
pauseで確認した所以下のようなエラーメッセージが出ています。

[dshow @ 000001e729a07dc0] Could not find audio only device with name [ステレオ ミキサー (Realtek(R) Audio) ] among source devices of type audio.
[dshow @ 000001e729a07dc0] Searching for audio device within video devices for ステレオ ミキサー (Realtek(R) Audio)
[dshow @ 000001e729a07dc0] Could not enumerate audio only devices (or none found).
[in#0 @ 000001e7299e1080] Error opening input: I/O error
Error opening input file audio=ステレオ ミキサー (Realtek(R) Audio) .
Error opening input files: I/O error
2024/11/09(土) 00:44:00.35ID:oNezVWTX0
入力ファイルは何処で指定してるんだろ?
26名無しさん@お腹いっぱい。
垢版 |
2024/11/09(土) 00:49:16.58ID:PLorP5ba0
え?入力なんてあるんですか?
27名無しさん@お腹いっぱい。
垢版 |
2024/11/09(土) 00:59:20.40ID:PLorP5ba0
これは画面録画なので入力はありませんよ
28名無しさん@お腹いっぱい。
垢版 |
2024/11/10(日) 04:35:42.98ID:Z6UXz49n0
for %%1 in (*) do "ffmpeg.exe" -ss 0 -i "%%1" -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 "%%~na.mp4"

動画と音声を合成するのに入力を2つにしたいのですが、どうやればいいでしょうか?
29名無しさん@お腹いっぱい。
垢版 |
2024/11/10(日) 11:08:05.41ID:hh6v3wET0
>>23
確証はないけど
クォートの位置を変えてみたらどうかな
-i audio="ステレオ ミキサー (Realtek(R) Audio)"
これを
-i "audio=ステレオ ミキサー (Realtek(R) Audio)"
こんな感じで
30名無しさん@お腹いっぱい。
垢版 |
2024/11/10(日) 12:17:32.42ID:hh6v3wET0
>>28
-i xxxx.,mkv -i xxxx.wav -i xxxx.mp3
みたいに-iを複数個指定したら複数個の入力になって
-mapで出力の構成を指定する
-map 0:v:0 -map 1:a:0 -map 2:a:0
みたいな感じ
-mapについてはココ
ttps://trac.ffmpeg.org/wiki/Map
3128
垢版 |
2024/11/10(日) 20:38:07.10ID:Z6UXz49n0
>>28
できれば変数を2つ入力させたいのですが、これだとうまくいきませんでした。

for %%a %%b in (*) do (
"C:\Portable\command\ffmpeg.exe" -ss 0 -i "%%a" -i "%%1" -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 -map 2:a:0 -c:a aac "%%~nab"
)
3228
垢版 |
2024/11/10(日) 20:47:24.60ID:Z6UXz49n0
間違えましたこっちです

for %%1 in (*) do "ffmpeg.exe" -ss 0 -i "%%a" "%%b" -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 -map 2:a:0 "%%~na.mp4"
33名無しさん@お腹いっぱい。
垢版 |
2024/11/11(月) 00:44:57.79ID:MxizNUad0
>>29
だめでした
2024/11/11(月) 03:00:20.74ID:l4yBgE+u0
>>33
おそらく、"(R)"がいらない
少なくともウチの環境ではいらなかった
35名無しさん@お腹いっぱい。
垢版 |
2024/11/11(月) 03:34:35.55ID:MxizNUad0
>>34
だめでした
2024/11/11(月) 04:20:49.90ID:l4yBgE+u0
>>35
エラー自体はデバイスを無効にしているときに出るものと同じだけど、
> ffmpeg.exe -list_devices true -f dshow -i dummy
はちゃんとデバイス名が返って来るんだよね?
返ってくるなら正しいデバイス名が指定されていないということになる

そのままコピペしてもダメなら、代替デバイス名として表示されている"@device_cm_{xxxxx…"を入れてみるしかない
37名無しさん@お腹いっぱい。
垢版 |
2024/11/11(月) 05:36:35.78ID:MxizNUad0
>>36
[dshow @ 00000255a43d3d40] "ステレオ ミキサー (Realtek(R) Audio)" (audio)
となっていたので
00000255a43d3d40
をコピペしましたが、だめでした
38名無しさん@お腹いっぱい。
垢版 |
2024/11/11(月) 06:42:43.49ID:MxizNUad0
今気付いたのですが、デバイス情報を取得する際にエラーが出ているようです。

[dshow @ 00000255a43d3d40] Could not enumerate video devices (or none found).
[dshow @ 00000255a43d3d40] "ステレオ ミキサー (Realtek(R) Audio)" (audio)
[dshow @ 00000255a43d3d40] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{7FCB2D82-6F31-43B1-AFFD-0F8DDE5E86C3}"
[in#0 @ 00000255a43cc240] Error opening input: Immediate exit requested
Error opening input file dummy.
39名無しさん@お腹いっぱい。
垢版 |
2024/11/11(月) 08:26:36.28ID:MxizNUad0
試しにWindows付属のボイスレコーダーで録音してみたのですが、録音できなかったので設定を確認しました
するとマイクが無効になっていることに気付いたので有効にしてみたのですが、これでbatファイルも動くようになったのですが
音がまったく入りませんでした

"ffmpeg.exe" -f dshow -i audio="ステレオ ミキサー (Realtek(R) Audio)" -acodec aac "recording.mp3"

を試してみるとエラーが出ていました

[aist#0:0/pcm_s16le @ 0000025e1bd4ee40] Guessed Channel Layout: stereo
Input #0, dshow, from 'audio=ステレオ ミキサー (Realtek(R) Audio)':
Duration: N/A, start: 2481.597000, bitrate: 1411 kb/s
Stream #0:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s16le (native) -> aac (native))
Press [q] to stop, [?] for help
[mp3 @ 0000025e1bd6e500] Invalid audio stream. Exactly one MP3 audio stream is required.
[out#0/mp3 @ 0000025e1bd0d1c0] Could not write header (incorrect codec parameters ?): Invalid argument
[af#0:0 @ 0000025e19222040] Error sending frames to consumers: Invalid argument
[af#0:0 @ 0000025e19222040] Task finished with error code: -22 (Invalid argument)
[af#0:0 @ 0000025e19222040] Terminating thread with return code -22 (Invalid argument)
[out#0/mp3 @ 0000025e1bd0d1c0] Nothing was written into output file, because at least one of its streams received no packets.
size= 0KiB time=N/A bitrate=N/A speed=N/A
[aac @ 0000025e1bd0e940] Qavg: nan
Conversion failed!
40名無しさん@お腹いっぱい。
垢版 |
2024/11/11(月) 08:33:49.62ID:MxizNUad0
ちなみにOBSではステミキから録画録音はできています
41名無しさん@お腹いっぱい。
垢版 |
2024/11/11(月) 11:04:36.45ID:YLm/Q3XS0
>>39
そういえば
-acodec aac
このコーデック指定に対するオーディオビットレートの指定とか無くね?
2024/11/11(月) 12:37:50.64ID:YLm/Q3XS0
>>39
よく見たらコーデックがaacなのにmp3のコンテナに入れようとしてるな
出力をrecording.aacにしたら通るかも
43名無しさん@お腹いっぱい。
垢版 |
2024/11/11(月) 15:53:02.53ID:MxizNUad0
recording.aacにしても通りませんでした
それと元々ステミキがおかしいみたいなのでPCメーカーに相談中です
2024/11/11(月) 18:48:39.17ID:l4yBgE+u0
>>37
それではなく、
>>38 の Alternative name
"@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{7FCB2D82-6F31-43B1-AFFD-0F8DDE5E86C3}"
を指定する
これは、あなたの現在の環境でしか使えない一意の値(uuid)なのでそのつもりで

ここまでわかっていること
ステレオミキサーは>>24では正しく指定されていないか、無効になっているが、
>>38 では正しく指定されて、有効になっており、動作もしている

とりあえず以下のいずれかを実行
> ffmpeg.exe -f dshow -i audio="ステレオ ミキサー (Realtek(R) Audio)" -c:a aac recording.m4a
> ffmpeg.exe -f dshow -i audio="@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{7FCB2D82-6F31-43B1-AFFD-0F8DDE5E86C3 -c:a aac recording.m4a

これでエラーが出なければ、あとはステレオミキサーの設定次第
レスを投稿する