24/10/01 16:28:34.77 PX3JkQvA0.net
そうではなくて一々ファイル名を入力するのが面倒なので変数でやりたいのです
やりたいことはAVI(映像)に MP3(音声)を追加してAVI(映像+音声)です
11:名無しさん@お腹いっぱい。
24/10/01 18:11:40.33 VRBX2/mB0.net
>>10
ChatGPTに聞いた方がかくじつ
12:名無しさん@お腹いっぱい。
24/10/01 20:41:26.04 vxURPcb30.net
必要なのはバッチやスクリプトの知識だな
13:名無しさん@お腹いっぱい。
24/10/01 20:58:43.66 PX3JkQvA0.net
ChatGPTに聞いて作りましたが、動作しませんでした
14:名無しさん@お腹いっぱい。
24/10/01 22:15:49.09 VRBX2/mB0.net
>>13
どう動かなかったのかをまたChatGPTに質問する
具体的な環境やどういうエラーかとかここで質問するのとまったく同じことを質問する
の繰り返し
例
ffmpegでMP3ファイルとAVIファイルを結合するバッチコマンドを作成したい
ただしファイル名を変数を使って引数に指定したい
15:名無しさん@お腹いっぱい。
24/10/02 08:20:07.89 aKtGWBun0.net
エラーコードを見せたり色々やったけどだめでした
ChatGPTでは無理でした
16:名無しさん@お腹いっぱい。
24/10/04 08:26:46.27 a3kpSaxB0.net
キチンとしたものができるかどうかは与えてる情報次第なんじゃないかな…
17:名無しさん@お腹いっぱい。
24/10/10 11:26:37.06 hpxuk1Jc0.net
vobsubの字幕のある動画を縮小すると字幕が表示されない
表示位置を固定すると、でかい字幕の一部が見える
プレイヤー側の問題な気もするけど、まともに取り扱えるプレイヤーが見つからないので、
縮小時でなんとかしたい
-canvas_sizeオプションを付けるという解決策が見つかるけど、エラーになる
本来ならそんなの付けなくても勝手にやってくれそうなものなのに
18:名無しさん@お腹いっぱい。
24/10/10 13:42:36.65 hpxuk1Jc0.net
-canvas_sizeを-iの前に指定するとエラーは出なくなる
でも何も変わらない
19:名無しさん@お腹いっぱい。
24/10/10 14:20:40.57 hpxuk1Jc0.net
自決しました
-c:s copy としていたのが原因で、dvdsubをdvdsubで再エンコードする必要があった
それだけでは駄目で、-canvas_sizeで元サイズを教えてやる必要もある
同じ画像字幕のpgsではそんなことする必要はなくて、vobsubでは必要
20:名無しさん@お腹いっぱい。
24/10/13 22:42:22.13 q84Exes6Q
頭弱いやつってワクチン(笑)にナノマシンなんて入ってるわけねえとか思ってるた゛ろうけと゛
お前らが使ってる端末のCPUやwifiチップなどの集積回路はナノメー├ルの単位で作られてるからな
1ナノメートル = 0、000001ミリメート儿 な
ちなみに、肉眼で見える限界は0,1ミリメートルで,注射針の内径は0.25ミリメートルな
お前らでも家電製品やら制御してる電子基板くらい見たことあるだろ
あれがそっくり目に見えない大きさで作れるし電波の送受信もできるし、微弱な電気信号で動作するし,脳や体は微弱な電気信号で動いてる
わけだか゛、思考を読み取って映像化する技術も開発されてるし、と゛んな電気信号を改変して腦に与えたら思考コント囗ールできるかくらい
日本に原爆落とした世界最悪のならず者国家が研究してないわけがないた゛ろ脳タリン
(ref.) URLリンク(www.call4.j)<)тe.com/
тtps://n-souonhigaisosyoudan.amebaownd.Com/
21:名無しさん@お腹いっぱい。
24/11/03 19:35:59.76 uRcVW6Yi0.net
mp4で開始の5秒以降を
ffmpeg -ss 05 -i sample.mp4 sample_5.mp4
で出力できたのですが、音楽のビットレートが下がってしまいました。
音声のビットレートをそのままにしながら、上記のコマンドを流すにはどうしたらいいでしょうか?
22:名無しさん@お腹いっぱい。
24/11/03 21:13:45.53 6KIrzJ7B0.net
>>21
それだと再エンコードしているので -c copy を追加
23:名無しさん@お腹いっぱい。
24/11/03 21:45:56.23 IbA3NUg50.net
>>22
ありがとうございます!試してみます!
24:名無しさん@お腹いっぱい。
24/11/08 22:34:27.92 JayTcIIS0.net
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)
となっていたので問題ないと思うのですが?
25:名無しさん@お腹いっぱい。
24/11/08 23:52:55.22 JayTcIIS0.net
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
26:名無しさん@お腹いっぱい。
24/11/09 00:44:00.35 oNezVWTX0.net
入力ファイルは何処で指定してるんだろ?
27:名無しさん@お腹いっぱい。
24/11/09 00:49:16.58 PLorP5ba0.net
え?入力なんてあるんですか?
28:名無しさん@お腹いっぱい。
24/11/09 00:59:20.40 PLorP5ba0.net
これは画面録画なので入力はありませんよ
29:名無しさん@お腹いっぱい。
24/11/10 04:35:42.98 Z6UXz49n0.net
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つにしたいのですが、どうやればいいでしょうか?
30:名無しさん@お腹いっぱい。
24/11/10 11:08:05.41 hh6v3wET0.net
>>24
確証はないけど
クォートの位置を変えてみたらどうかな
-i audio="ステレオ ミキサー (Realtek(R) Audio)"
これを
-i "audio=ステレオ ミキサー (Realtek(R) Audio)"
こんな感じで
31:名無しさん@お腹いっぱい。
24/11/10 12:17:32.42 hh6v3wET0.net
>>29
-i xxxx.,mkv -i xxxx.wav -i xxxx.mp3
みたいに-iを複数個指定したら複数個の入力になって
-mapで出力の構成を指定する
-map 0:v:0 -map 1:a:0 -map 2:a:0
みたいな感じ
-mapについてはココ
URLリンク(trac.ffmpeg.org)
32:28
24/11/10 20:38:07.10 Z6UXz49n0.net
>>29
できれば変数を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"
)
33:28
24/11/10 20:47:24.60 Z6UXz49n0.net
間違えましたこっちです
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"
34:名無しさん@お腹いっぱい。
24/11/11 00:44:57.79 MxizNUad0.net
>>30
だめでした
35:名無しさん@お腹いっぱい。
24/11/11 03:00:20.74 l4yBgE+u0.net
>>34
おそらく、"(R)"がいらない
少なくともウチの環境ではいらなかった
36:名無しさん@お腹いっぱい。
24/11/11 03:34:35.55 MxizNUad0.net
>>35
だめでした
37:名無しさん@お腹いっぱい。
24/11/11 04:20:49.90 l4yBgE+u0.net
>>36
エラー自体はデバイスを無効にしているときに出るものと同じだけど、
> ffmpeg.exe -list_devices true -f dshow -i dummy
はちゃんとデバイス名が返って来るんだよね?
返ってくるなら正しいデバイス名が指定されていないということになる
そのままコピペしてもダメなら、代替デバイス名として表示されている"@device_cm_{xxxxx…"を入れてみるしかない
38:名無しさん@お腹いっぱい。
24/11/11 05:36:35.78 MxizNUad0.net
>>37
[dshow @ 00000255a43d3d40] "ステレオ ミキサー (Realtek(R) Audio)" (audio)
となっていたので
00000255a43d3d40
をコピペしましたが、だめでした
39:名無しさん@お腹いっぱい。
24/11/11 06:42:43.49 MxizNUad0.net
今気付いたのですが、デバイス情報を取得する際にエラーが出ているようです。
[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.
40:名無しさん@お腹いっぱい。
24/11/11 08:26:36.28 MxizNUad0.net
試しに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!
41:名無しさん@お腹いっぱい。
24/11/11 08:33:49.62 MxizNUad0.net
ちなみにOBSではステミキから録画録音はできています
42:名無しさん@お腹いっぱい。
24/11/11 11:04:36.45 YLm/Q3XS0.net
>>40
そういえば
-acodec aac
このコーデック指定に対するオーディオビットレートの指定とか無くね?
43:名無しさん@お腹いっぱい。
24/11/11 12:37:50.64 YLm/Q3XS0.net
>>40
よく見たらコーデックがaacなのにmp3のコンテナに入れようとしてるな
出力をrecording.aacにしたら通るかも
44:名無しさん@お腹いっぱい。
24/11/11 15:53:02.53 MxizNUad0.net
recording.aacにしても通りませんでした
それと元々ステミキがおかしいみたいなのでPCメーカーに相談中です
45:名無しさん@お腹いっぱい。
24/11/11 18:48:39.17 l4yBgE+u0.net
>>38
それではなく、
>>39 の Alternative name
"@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{7FCB2D82-6F31-43B1-AFFD-0F8DDE5E86C3}"
を指定する
これは、あなたの現在の環境でしか使えない一意の値(uuid)なのでそのつもりで
ここまでわかっていること
ステレオミキサーは>>25では正しく指定されていないか、無効になっているが、
>>39 では正しく指定されて、有効になっており、動作もしている
とりあえず以下のいずれかを実行
> 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
これでエラーが出なければ、あとはステレオミキサーの設定次第
46:名無しさん@お腹いっぱい。
24/11/11 21:09:10.40 MxizNUad0.net
>>45
ありがとうございました。
47:名無しさん@お腹いっぱい。
24/11/11 22:37:18.98 MxizNUad0.net
ffmpeg.exe -f dshow -i audio="ステレオ ミキサー (Realtek(R) Audio) " -acodec aac audio.m4a
ステミキが直ったので試してみたのですが、相変わらずエラーが出ます
[dshow @ 000002dce40cd540] Could not find audio only device with name [ステレオ ミキサー (Realtek(R) Audio) ] among source devices of type audio.
[dshow @ 000002dce40cd540] Searching for audio device within video devices for ステレオ ミキサー (Realtek(R) Audio)
[dshow @ 000002dce40cd540] Could not enumerate audio only devices (or none found).
[in#0 @ 000002dce40c9f40] Error opening input: I/O error
Error opening input file audio=ステレオ ミキサー (Realtek(R) Audio) .
Error opening input files: I/O error
これの直し方はご存じの方いますか?
48:名無しさん@お腹いっぱい。
24/11/11 23:26:02.74 DLftLlV/0.net
なんでOS標準昨日のGamebar使って画面録画しないのやら、、
49:名無しさん@お腹いっぱい。
24/11/12 00:03:12.69 7OfTyu/p0.net
昨日のGamebarがツボった
50:名無しさん@お腹いっぱい。
24/11/12 06:46:02.79 2mdQ0UJO0.net
gamebarのような、常駐して勝手にネットにアクセスしようとするアプリは
使わずに済むなら黙らせておきたいわ
51:名無しさん@お腹いっぱい。
24/11/12 06:49:16.11 2mdQ0UJO0.net
>>47
存在しないデバイスを指定しているからエラーになる
52:名無しさん@お腹いっぱい。
24/11/12 07:46:54.21 /cEs5VGA0.net
録画したいものあるのにここでうだうだ相談してる暇あるならGamebar使え
53:名無しさん@お腹いっぱい。
24/11/12 09:14:34.19 8TaEprTH0.net
できれば変数を2つ入力させたいのですが、これだとうまくいきませんでした。
どこを修正すればいいのでしょうか?
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"
54:名無しさん@お腹いっぱい。
24/11/12 10:40:18.70 U54sfkXz0.net
batファイルのfor文じゃ無理じゃね?
55:名無しさん@お腹いっぱい。
24/11/12 12:31:31.18 U54sfkXz0.net
>>53
for文についてググってみたw
今コンソールが使える状況じゃないので未確認だけど
こんな感じのファイル名にして
v1.mkv a1.mp3
v2.mkv a2.mp3
v3.mkv a3.mp3
この前提で以下のfor文でどうかな?
for /L %%n in (1,1,3) do ( ffmpeg -i v%%n.mkv -i a%%n.mp3 )
56:名無しさん@お腹いっぱい。
24/11/12 12:40:50.32 7OfTyu/p0.net
複数の入力が目的だったら、forでは引数の連結だけやって、抜けてからffmpeg実行になると思う
57:名無しさん@お腹いっぱい。
24/11/12 14:38:53.01 8TaEprTH0.net
>>55
これは出力はなくていいのですか?
58:名無しさん@お腹いっぱい。
24/11/12 21:06:58.65 z6PkRKkA0.net
最近、複数の音声をコンテナに詰め込む必要に迫られたのでこんな感じでやってるよ
#01_くんくん.mp4
#01_ぽてぽて.mp4
#01_もふもふ.mp4
#01_わんわん.mp4
上のmp4動画の音声を1つのコンテナに詰め込む
@echo off
cd /d "%~dp0"
:loop
if "%~1"=="" goto :last
if /i not "%~x1"==".mp4" goto :shift
echo %~n1 | find "_わんわん" >NUL
if errorlevel 1 goto :shift
set "BaseName=%~n1"
set "BaseName=%BaseName:~0,3%"
ffmpeg.exe -i "%~1" -i "%~dp1%BaseName%_ぽてぽて.mp4" -i "%~dp1%BaseName%_くんくん.mp4" -i "%~dp1%BaseName%_もふもふ.mp4" -map 0:0 -map 0:1 -metadata:s:a:0 title="わんわん!" -map 1:1 -metadata:s:a:1 title="ぽてぽて!" -map 2:1 -metadata:s:a:2 title="くんくん!" -map 3:1 -metadata:s:a:3 title="もふもふ!" -c copy "%~dp1%BaseName%.mp4"
:shift
shift
goto loop
:last
pause
59:名無しさん@お腹いっぱい。
24/11/13 02:09:02.70 fIVWfyGy0.net
>>58
ありがとうございました。
60:名無しさん@お腹いっぱい。
24/11/13 08:24:05.77 Ij/PNHp+0.net
>>58
自分は分からないんだけどすごい役に立ちそうな感じいいですね!!