音声ファイルを指定の長さにループします


2

私は現在、いくつかのmp3ファイルを取得し、最初のファイルが一定時間再生され、必要に応じてループする別のmp3ファイルを作成する必要があるという問題に直面しています。できれば、コマンドラインソリューションを探しています。ffmpegとsoxを試しましたが、それらを使用した解決策が見つかりませんでした。だから今、私はいくつかのオプションを探しています。

詳細な説明:foo.mp3というファイルがあるとします。一定の長さを持ち、30秒とするとfoo.mp3ファイルを含むbar.mp3ファイルを作成する必要があります。foo.mp3が30より短い場合何秒もループしているので、30秒全体を埋めます。今、私が何を求めているのかが明確になったことを願っています。


質問を明確にしてください。あなたが何を求めているのか、私にはわかりません。

1
どおりffmpegのためのオプション-stream_loopは、dbb03b8e以来存在trac.ffmpeg.org/ticket/2584上記のリンク。
ジャマダーニ

回答:


4

ffmpegはあなたのためにそれを行うことができますが、2つのステップが必要な場合があります

オプションのステップ1:元のファイルの長さを見つける

ffmpeg -i '/path/to/original.mp3' 2>&1 | grep 'Duration :'

これで、必要な繰り返し回数を計算できます。別の方法として、「安全な」回数の繰り返しを使用することができます。これは、あまりにも多くの回数が害にならないためです。

ステップ2:ファイルをループし、必要な長さに切ります

このコンテンツで「concat.txt」を作成します

file '/path/to/original.mp3'
file '/path/to/original.mp3'
...
file '/path/to/original.mp3'
file '/path/to/original.mp3'
file '/path/to/original.mp3'

少なくとも繰り返しが必要な数の行を持っている必要がありますが、繰り返しますが、より多くの行が傷つかないので、安全な(多すぎる)行数を使用できます

そして、ffmpegを実行します(123.456秒が必要だと仮定):

ffmpeg -t 123.456 -f concat -i concat.txt -c copy -t 123.456 output.mp3

解決策は多分エレガントではありませんが、私が必要とすることをします。おそらく、ffmpeg開発者に機能要求を出して、ループオプションと一緒に-tオプションのようなもの、またはループする秒数のパラメーターを持つ単なるループオプションを配置する必要があります。それでも、オイゲンのご協力に感謝します!これで私の問題は解決しました。
Tomcatus

@Tomcatus上で述べたように、すでに機能のリクエストがあります。ループしてから使用して-t...それが実装された場合、あなたが望むものを達成するであろう
slhck

最初は-私は日常のラインの「安全な」数でこれを使用する-tすべての不要なものを読んでいないことを確認します
オイゲン・Rieck

@slhck機能リクエストURLとは何ですか?実装されましたか?ありがとう
ロエル・ヴァン・デ・パール

@RoelVandePaar これは機能のリクエストであり、-stream_loop実装されました。
slhck

0

これは、次のコマンドを使用(追加)することで実現できます。

-stream_loop -1 -i D:\music\mp4.mp3

これは、ビデオが終了するまで、D:\ music \ mp4.mp3ファイルを無限にループする必要があることを意味します。

https://ffmpeg.org/ffmpeg.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.