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/12/24(火) 13:00:31.34ID:1s/Gz/q50
>>80
ありがとうm(__)m
2024/12/29(日) 17:14:26.87ID:5vq0IFAF0
ffmpegでAMV4コーデック(FourCC:AMV4)でエンコードすることって出来ますか?
AIに聞いたコマンドはどれもエラーになってしまってダメでした
入力がavsスクリプトなのでavs2aviでできるかと思ったらvfwしか対応していないっぽくてダメでした
ffmpegでなくてもコマンドでエンコードできるならどんな方法でもいいんですけど
なにかいい方法はありませんか?

AMV4コーデック
p://www.amarectv.com/buy.htm
2024/12/29(日) 20:37:55.75ID:wD3pskmL0
有料のものを無料で配布はしないだろうけど、
ライセンスによっては自分でビルドするならokかもしれない
2024/12/29(日) 21:14:13.57ID:qFYy665i0
FFMPEGで複数ファイル(サブディレクトリも対象)のエラーチェックをしたいのですが、どのように書けばいいでしょうか?
ちなみにAIの出したコードはまともに動きませんでした。
2024/12/29(日) 21:15:57.34ID:wD3pskmL0
そんな質問でAIが判る訳がない
2024/12/30(月) 04:17:00.85ID:gPTXJnbD0
>>85
ということはあなたならAIがまともなコードを出すと?
それならそのコードをここに貼ってください。
それでまともに動くならあやまります。
逆に動かないならあやまってください。
2024/12/30(月) 09:02:55.89ID:76J0NjiG0
AIは考えないしコード生成もしない
既存のコードのうちそれらしいのを探すのが上手いだけ
どう探せばいいかを細かく指定する必要がある
2024/12/30(月) 09:16:32.72ID:cnpELpCw0
AIはどこにも回答が無いと答えられないからね
ネット上に転がってる情報からしか回答できない
だから意外とごく当たり前のことでも誰もやり取りをしたことが無いような質問だと答えられない
2024/12/30(月) 09:22:02.77ID:76J0NjiG0
今回のケースはそれ以前の問題で、
複数ファイルのエラーチェックとだけ言われても、
どんなエスパーでも答えられない
2024/12/30(月) 12:41:59.16ID:LfincfDq0
AIが出した答えをフォルダ名の書き直しもせず丸々コピペしただけなんじゃね
2024/12/30(月) 13:46:20.32ID:gPTXJnbD0
良いからコード貼ってください。
話はそれから
2024/12/30(月) 16:27:31.48ID:LfincfDq0
おまえが出来なかったっていうコード出してみろよ
93名無しさん@お腹いっぱい。
垢版 |
2024/12/30(月) 16:29:51.29ID:gPTXJnbD0
なんだ結局口だけの連中だったか
やれやれ何のためにスレに張り付いてんだろ
2024/12/30(月) 16:39:03.71ID:LfincfDq0
何も情報出さずにスレ張り付いて即レスしてるのはおまえだろwww
95名無しさん@お腹いっぱい。
垢版 |
2024/12/30(月) 22:43:35.06ID:5jENQpV60
ケンカ売ってて草
>>86
96名無しさん@お腹いっぱい。
垢版 |
2024/12/30(月) 22:44:20.25ID:dPodkwDw0
こんな文盲にまともにレスしてるおまえら優しすぎ
97名無しさん@お腹いっぱい。
垢版 |
2024/12/30(月) 22:44:37.94ID:dPodkwDw0
>>93
一人で苦しめww
2024/12/30(月) 23:17:15.43ID:76J0NjiG0
狂人の真似とてレスバすれば即ち狂人なり
2024/12/31(火) 23:27:47.67ID:ADrjcjXJ0
ffmpegでエラーチェックができるとは知らなんだ
2024/12/31(火) 23:37:09.36ID:jMVAHidO0
地上波を録画したtsファイルで、録画開始直後に音声のトラックが変化して、
普通にエンコードすると音声になしになってしまうようなケースが結構ある

先頭から2秒後以降をエンコード対象にすると正常になる
まあ、先頭は欠けるけど

このへんのエラーチェックをきっちりやって欲しいとは思うけど無理だろうな
2024/12/31(火) 23:42:27.37ID:i5v3de7N0
映像と音声を分離して個別にエンコードしても一緒?
2024/12/31(火) 23:44:14.00ID:jMVAHidO0
試してないけど、多分そうだろう
途中から現れるストリームなんか認識できない
2025/01/01(水) 01:21:20.34ID:Yjf9Kg0f0
それらしいのはこれかな?

ffprobe の使い方 | ニコラボ
https://nico-lab.net/how_to_use_ffprobe/#ini

-read_intervals
調べるデータの範囲指定。パケット単位と秒単位がある。

10秒から始まり、そこから20秒間(相対位置)と、1分30秒から1分45秒(絶対位置)までの例。
-read_intervals 10%+20,01:30%01:45

Bookmark changes between 5.1 and Stereo audio?
https://hummy.tv/forum/threads/bookmark-changes-between-5-1-and-stereo-audio.9800/
2025/01/01(水) 01:21:48.55ID:Yjf9Kg0f0
## ffmpegはデフォルトの状態では先頭から5秒間、ストリームの容量で5MBしか解析を行いません。
それを拡張するオプションが -analyzeduration と -probesize。

-analyzeduration [integer]
解析時間の上限をマイクロ秒で指定。10秒なら10000000(あるいは10M)。

-probesize [integer]
解析する容量の上限をbyteで指定。10MBなら10000000(あるいは10M)。

先にどちらかの上限に達したところで解析終了となります。

例:解析時間を30秒、解析容量を100MBに設定してtest.tsを読み込み、PID=0x123の音声ストリームをtest.m4aとして出力。
ffmpeg -analyzeduration 30M -probesize 100M -i test.ts -map #0x123 test.m4a
(事前にPIDまたはそれに対応するffmpegのストリーム番号を知るために ffmpeg -analyzeduration 30M -probesize 100M -i test.ts -frames:v 1 -f null - のようなコマンドでログを出力して調べると良い)
2025/01/01(水) 08:01:09.64ID:S1q9uTDA0
>>103-104
横ですけどありがたい話しですね。
自分には難しそうです。。。
>>100
TSsplitterで切ってみるかですかね。。。
自分はNHKとかはTSsplitterで切ってます。5.1Chとか音声2トラックあるやつも別の設定のTSsplitterで一応切りますね。
左右のステレオ音声の番組は普段は録画しっぱなしのTSファイルをこれ音声部分だけですが↓でエンコードやってMPC-BEで手動で音声出てるかチェックしています。
-c:a copy -bsf:a aac_adtstoasc
毎日20-30ファイルのエンコードして2-3ファイルは音出ないので
-c:a copy
でエンコやり直しです。FFMPEGで先頭切るときもあります。グラボでのエンコです。ARC A750。
2025/01/01(水) 09:11:25.19ID:RkMXGUC50
音声が無くなる時は
PCE-based channel configuration without PCE as first syntax element is not implemented
のエラーが出てるので、それが出た時は手動でやり直すように警告を残すようにしてる
2025/01/04(土) 15:28:40.01ID:kfsc5j7S0
すみません教えて下さい。m2tsファイルから字幕を抜き取る作業をしているのですが1本だけでしたら下記でできるのですが

ffmpeg -i W:\Videos\ドラマ1.m2ts C:\FFmpeg\bin\ドラマ1.srt

これを例えば10本のm2tsファイルが入ったフォルダごと処理するにはどうすればよいのでしょうか
いろいろ試してみたのですがうまくてきなくて…すみませんがよろしくお願いします
2025/01/04(土) 15:53:28.12ID:gkdJPsRf0
ffmpegを10回実行する
時間がかかるならbatファイルにする
手作業で書くのが面倒なら生成スクリプトを作る
そこまでしなくても、batファイルのfor文で大抵どうにかなる
2025/01/04(土) 16:05:23.97ID:kfsc5j7S0
>>108
早速ありがとうございます
10回繰り返すのが手間で…
for文で実行してみたんですけどうまく処理できなくて…
batファイルにしなきゃだめなんでしょうか?よく分からなくてすみません
2025/01/04(土) 17:15:45.48ID:4kzlWewD0
batにすれば簡単なやり方だと同じ処理を回数分コピペしてファイル名だけ変えれば済む話でしょ
2025/01/04(土) 18:38:09.56ID:3gmUcFiX0
@echo off
setlocal
if "%~1"=="" goto :EOF
set "ffmpeg=C:\FFmpeg\bin\ffmpeg.exe"
set "destDir=C:\FFmpeg\bin\"
if not exist "%ffmpeg%" goto :EOF
if not exist "%destDir%" goto :EOF
set "attributes=%~a1"
if "%attributes:~0,1%"=="d" (
pushd "%~1"
) else (
goto :EOF
)
for %%a in (*.m2ts) do call :hoge "%%~fa"
endlocal
goto :EOF
:hoge
set "outFile=%destDir%%~n1.srt"
if exist "%outFile%" call :fuga "%outFile%"
"%ffmpeg%" -i "%~1" "%outFile%"
exit /b
:fuga
set num=2
:loop
if not exist "%~dpn1 (%num%)%~x1" (
set "outFile=%~dpn1 (%num%)%~x1"
goto :end
)
set /a num+=1
goto :loop
:end
exit /b
2025/01/04(土) 20:10:43.61ID:9ma+TpFc0
>>107
コマンドを直接実行するならこれでいいんじゃない

for %A in ("W:\Videos\*.m2ts") do ffmpeg -hide_banner -n -i "%~fA" "%~dpnA.srt"
2025/01/04(土) 20:14:36.76ID:9ma+TpFc0
連レスになるけどバッチファイルというかffmpegのオプションじゃない話なら生成AI丸投げでもいいんじゃないか
tps://chatgpt.com/share/677917b1-3f14-8013-905d-87006d1b9ad4
2025/01/04(土) 22:51:02.73ID:on/yqc770
コマンドラインオプションの融通が利くFFmpegのフロントエンドでおk
2025/01/04(土) 23:14:34.43ID:gkdJPsRf0
batファイルは謎仕様が多すぎるんだけど、
後方互換性のしがらみで修正できないので、
謎仕様は増えることはあっても減ることはない

CLIに対応してるアプリはそれだけで有り難いので、あまり過度な期待をしてはいけない

ということで、pythonあたりで無難なbatを一旦吐いてそれを実行するというのが、
実用的かつ安全な実装となる
2025/01/05(日) 00:37:38.25ID:+EhcCaiC0
>>107
ffmpeg に PASS 通してなければ同じフォルダに置いて

cd /d %~dp0
if not exist srt mkdir srt
for %%f in (%*) do (
ffmpeg -i %%f "srt\%%~nf.srt"
)

好きなフォルダにBATで保存したら 複数D&D で逐次処理できる
勝手に"str"サブフォルダ作って保存する
後は好きにアレンジして下さい
2025/01/05(日) 01:11:25.62ID:XgpkBzT20
バッチファイルの知識なかったら不具合でるやつ
118105
垢版 |
2025/01/05(日) 03:14:22.88ID:CnfstZ610
>>106
遅レスすみません。
自分のも音が出ないときはそういう文字列見てるです。
これはどんな感じで実現するのでしょうか?
119105
垢版 |
2025/01/05(日) 09:37:50.20ID:CnfstZ610
ログ書き出して検索する感じでしょうか。
ありがとうございます。
2025/01/05(日) 19:28:10.04ID:zBGLqMo60
>>112>>116で無事うまく抽出できました!ありがとうございます!すごく感謝です!
こういうのが書ける方たちほんとすごいです。尊敬します
>>111は動かなかったのですが教えて頂き感謝です!
みなさんどうもありがとうございました!感謝です
2025/01/05(日) 19:38:26.27ID:eMWOrAtJ0
batファイルは凝ったことすると暗号みたいになるんだよな
判りやすく書かないとメンテできない
https://i.imgur.com/RVxaHeg.png
122名無しさん@お腹いっぱい。
垢版 |
2025/01/13(月) 17:08:12.35ID:/SdADEcP0
つなけはくりよたろむりふぬら
123名無しさん@お腹いっぱい。
垢版 |
2025/01/13(月) 17:41:31.55ID:Z+nIKJjd0
また肩を手術したほうを持った運行計画とか何らか解決策出てこればいいのにね
2025/01/13(月) 18:32:22.70ID:KUGOErOf0
>>122-123
スクリプトがグロ貼り付ける準備してんぞ
2025/01/13(月) 18:40:37.98ID:ME77wRh90
もう大暴れ中だわ
2025/01/13(月) 19:13:30.01ID:OTfb3Gj30
10万円で反応はあるな
スノヲタ記者が書いたのは本人だからな
インスタやTiktokなんか綺麗なものしか目に見て面白い
127名無しさん@お腹いっぱい。
垢版 |
2025/01/13(月) 20:36:20.94ID:bNcfye340
でもこれは
2025/01/13(月) 21:19:26.47ID:0TxgXwLw0
これはないという
https://i.imgur.com/jpWC0NU.jpg
129sage
垢版 |
2025/02/20(木) 05:36:52.96ID:ZfFNuOFS0
テスト
130名無しさん@お腹いっぱい。
垢版 |
2025/03/04(火) 05:19:37.59ID:qNLUi18g0
ffmpeg -i input.ts -c:v copy -c:a copy output.mp4 でtsファイルからmp4に変換しているのですが、変換後のmp4において”音声のずれ”(少し遅くなっている)が発生します。 何かいい方法はありますでしょうか?
2025/03/04(火) 08:23:11.08ID:z7htDshm0
ただズレてるだけなら”-itsoffset”
プラス値なら音の開始を遅らせてマイナス値なら早める
2025/03/04(火) 23:19:30.86ID:P94GA6fh0
>>130
実際の使い方
UnderstandingItsoffset – FFmpeg
https://trac.ffmpeg.org/wiki/UnderstandingItsoffset
2025/03/05(水) 00:07:41.85ID:NuPZ7Arh0
だんだんズレていく
たまに途切れる
エンコードの歴史は音ズレの歴史
134名無しさん@お腹いっぱい。
垢版 |
2025/03/06(木) 04:57:20.36ID:b5S9W9NJ0
>>131,132
ありがとうございます。
2025/03/06(木) 07:35:17.62ID:k5AxJolS0
だいたい23.976fpsのせい
2025/03/06(木) 20:14:36.66ID:OZsK608a0
30/1.001
24/1.001
こっちを使っとけ
2025/03/06(木) 20:28:24.12ID:mRlIbUG20
なんで1000/1001を使うのか調べても理解を超えてた
余計なフレームをたまに挿入するとかそんな話かと思ってた
2025/03/06(木) 22:08:04.46ID:x34us7Pa0
過去にエンコードしたファイルを最新版に更新したvlcで再生すると音が2秒位遅く再生されるようになったが、
ffmpeg -ss 00:00:00.001 -i input.mp4 -c copy output.mp4で先頭の部分だけ切るとデータが整ったのか音ズレが解消されたって事があった

何かズレてるなと思った時はとりあえずこれやってる
2025/03/21(金) 19:57:21.88ID:J7DTrPL/0
いつの間にか 7.1.1 になってた…
140名無しさん@お腹いっぱい。
垢版 |
2025/03/26(水) 09:24:59.55ID:/boF4jC80
@echo off
cd "ターゲットフォルダのパス"
setlocal enabledelayedexpansion
set "output=output.mp4"
set "firstFile="
for %%a in (*.*) do (
if "!firstFile!"=="" (
set "firstFile=%%a"
) else ("ffmpeg.exeのパス" -i "!firstFile!" -i "%%a" -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 "!output!"
set "firstFile=!output!"))
for %%f in (*.*) do (if not "%%f"=="!output!" (del "%%f"))

これだと動画がバグります。
後半部分を調整すると戻る
2025/03/26(水) 13:23:40.81ID:X9bD35vs0
>>140
なんかよくわからんw
要するに音声だけエンコードし直したいってこと?
2025/03/26(水) 13:30:21.86ID:gu2rd0k30
どのファイルを処理したのか、が重要なんだろうな
2025/03/26(水) 13:57:45.54ID:/boF4jC80
映像と音声を合成するのですが、なぜか動画の後半部分がバグります。
バグはつまみで早送りしたら元に戻るような内容です。
このバグが出ないようにする方法を教えてください。
2025/03/26(水) 14:08:10.12ID:gu2rd0k30
まず、現象が発生する最もシンプルな書き方まで戻す
145140
垢版 |
2025/03/26(水) 14:11:08.71ID:/boF4jC80
ぜひソースをお願いします。
2025/03/26(水) 14:15:39.57ID:gu2rd0k30
え、自分が書いたんじゃないの?
2025/03/26(水) 14:31:40.55ID:X9bD35vs0
ffmpeg -i A.mp4 -i B.mp4 -c:v copy -c:a aac -b:a 320k -map 0:v -map 1:a output.mp4
最もシンプルといえばこんなかんじか
上手くいかない時はforとか使わずベタ書きで処理してみよう
148140
垢版 |
2025/03/26(水) 15:02:52.75ID:/boF4jC80
やっぱりバグります。
2025/03/26(水) 18:12:44.72ID:dRRUkwsA0
Grok3に聞いた

@echo off
cd "ターゲットフォルダのパス"
setlocal enabledelayedexpansion

set "output=output.mp4"
set "fileList=temp_list.txt"

:: 既存のリストファイルを削除
if exist "%fileList%" del "%fileList%"

:: フォルダ内の全ファイルをリストに追加
for %%a in (*.*) do (
echo file '%%a' >> "%fileList%"
)

:: FFmpegで全ファイルを一度に結合
"ffmpeg.exeのパス" -f concat -safe 0 -i "%fileList%" -c:v copy -c:a aac -map 0:v:0 -map 0:a:0 "%output%"

:: 元ファイルを削除(output.mp4以外)
for %%f in (*.*) do (
if not "%%f"=="%output%" if not "%%f"=="%fileList%" (
del "%%f"
)
)

:: 一時リストファイルを削除
del "%fileList%"

echo 結合が完了しました。
pause
150名無しさん@お腹いっぱい。
垢版 |
2025/03/26(水) 19:05:15.85ID:QAvrm+0n0
copilotとかAIにきけよ。バカか?
151名無しさん@お腹いっぱい。
垢版 |
2025/03/26(水) 19:05:45.93ID:QAvrm+0n0
>>149
わざわざ代行してやるなよ。
甘やかすな
2025/03/26(水) 21:43:10.52ID:dRRUkwsA0
ところで、ここってGUI版の話題はダメなの?
2025/03/26(水) 22:16:48.89ID:6qUA+Ccp0
WinFFのこと?
2025/03/26(水) 22:50:24.09ID:yEpT2+Np0
もっと全部入りのあるじゃん
SmartFFmpegとかStaxRipとか、誰も使ってないの?
皆独自にビルドするくらい達人の集まりなん??
2025/03/26(水) 22:52:57.53ID:gu2rd0k30
そこそこPCには詳しいけど、ffmpegのビルドはまだやれてない
2025/03/26(水) 22:59:05.96ID:kK8vJAyG0
AvidemuxとかXMediaRecodeみたいなGUIのことなんじゃね?
フロントエンドはまだまだ難しいわ(´・ω・`)
2025/03/26(水) 23:10:53.29ID:kK8vJAyG0
>>156
訂正
誤:フロントエンドは
正:"ガチな"フロントエンドは
日本語で分かりやすき表現してもらわないと分からん素人向けじゃないときつい
2025/03/26(水) 23:19:06.95ID:yEpT2+Np0
>>156
それはFFmpegの機能の一部分だけしか使えない言わば「別物」じゃん。>>154のは丸ごとGUIで使えますってやつだから。
2025/03/27(木) 01:59:21.98ID:VQEjuA8w0
GUIフロントエンドに関しては
すでにCUIでオプションを使いこなしているので
GUIコマンドが具体的にどのオプションに該当するのかが明確でないと使いづらい
2025/03/27(木) 07:52:36.80ID:C/RHhe4R0
そんな奴はGUI使わない
161140
垢版 |
2025/03/27(木) 09:42:00.37ID:cUQXhOhW0
>>149
試しましたが、ファイルが全て消えました。
2025/03/27(木) 10:54:21.58ID:AHWG5i6i0
>>161
いい勉強になったね
2025/03/27(木) 11:24:31.73ID:y2rNuM1i0
そりゃ、結合後は元ファイル削除するって書いてあるからな消えるわなあ
164140
垢版 |
2025/03/27(木) 11:27:17.51ID:cUQXhOhW0
output.mp4以外と書いていますが、output.mp4は生成されませんでした。
2025/03/27(木) 11:28:49.16ID:C/RHhe4R0
やりたかったのは原因究明ではないの?
2025/03/27(木) 11:34:27.40ID:y2rNuM1i0
最初のコマンドも拾い物らしいし、どうせ結合したい動画も拾い物なんだろ?
フォーマットが揃ってなくて結合失敗してるだけってオチだろう。
167140
垢版 |
2025/03/27(木) 11:35:22.75ID:cUQXhOhW0
正しいファイルが生成できるようにしてほしいです。
168140
垢版 |
2025/03/27(木) 11:48:18.79ID:cUQXhOhW0
動画と音声のファイルを1つずつ使用し、結合しました。
2025/03/27(木) 12:44:42.28ID:gS153Fgq0
>>4のこれ消えてますね

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

最終のwebarchiveにリンクするならこちら

http://web.archive.org/web/20240926182009/https://tech.ckme.co.jp/ffmpeg.shtml
170140
垢版 |
2025/03/27(木) 13:37:36.75ID:cUQXhOhW0
すいませんあきらめます。
2025/03/27(木) 13:40:48.80ID:C/RHhe4R0
自分がffmpegについてぐぐると、必ず https://nico-lab.net/ にたどり着くな
2025/03/27(木) 19:21:44.57ID:baA8Q3TV0
>>161
>>149のバッチは一応動くからおま環かも
%fileList%に追加するファイル名に「#」などの半角記号やマルチバイト文字が含まれてるとエラーになるよ
173名無しさん@お腹いっぱい。
垢版 |
2025/03/27(木) 23:34:09.25ID:Td9HTtYA0
>>149
GJ!!wwww
2025/03/30(日) 10:48:36.94ID:aoVvdXrP0
>>140
set "firstFile=!output!"
のあと次のループでは
入力でも出力でも!output!が使われることにならないか?
2025/03/30(日) 11:11:00.73ID:GW/fWR8o0
ビックリは遅延展開されるのでは
2025/04/20(日) 11:50:01.38ID:tAqAGsEq0
台形に変形したりできる?
画面を斜め横から見た時に正しい形に見える動画を作りたい
2025/06/13(金) 04:55:00.97ID:CrJC2psX0
-afをストリーム毎に変える時はどう書くんだろう
2025/06/14(土) 10:56:08.09ID:Bfyth2gB0
-filter_complex だと -map で使う [0:a:0] みたいなラベル名が入力に使えたような記憶があるわ
2025/06/14(土) 11:27:00.57ID:hbg6jDZF0
ストリーム毎のオプションと、そうでないオプションが混在してて、
ストリーム毎でも省略形では全体を対象にする、みたいな動作なので、
正しい書き方が見つけにくい

ストリーム毎だと書く位置に依存しないのが救い
ffmpegは位置が重要なオプションも多い
2025/07/21(月) 22:27:42.25ID:dtwndUhn0
テレビを録画したtsファイルで音声のフォーマットが途中で切り替わったりしてると、
エンコードに失敗する
切り替わった後からエンコードすればok
でもどこで切り替わったか調べられない

仕方ないので、音声を.wavで抜き出してから合体させればエンコードは成功する
でも音ズレが発生する

何が正解か判らない
レスを投稿する

16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

ニューススポーツなんでも実況