オーディオファイル(.wavまたは.au形式)とビデオファイル(.mp4形式)をマージしたい
これを達成する方法を提案してください。私はこれらのファイルを新しい.mp4ビデオファイルにマージしたい。ffmpegコマンドは非常に歓迎されます
249 Sandy 2011-05-01
オーディオの再エンコードで、ビデオとオーディオをマージします
このブログ記事から取られたこの例を参照してください。これは、次のような効果を持つものでなければなりません
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac output.mp4
ここでは、ビデオファイルにはまだオーディオストリームが含まれていないと仮定し、入力フォーマットと同じ出力フォーマット(ここでは、MP4)を持っているとします
MP4 は PCM オーディオストリームを運ぶことができないので、上記のコマンドはオーディオをトランスコードします。必要であれば、他の任意のオーディオコーデックを使用することができます。詳細は FFmpeg Wiki を参照してください。AAC エンコーディングガイド を参照してください
オーディオやビデオのストリームが長い場合は、-shortest
オプションを追加することで、1つのファイルが終了すると ffmpeg がエンコードを停止するようにすることができます
再エンコードせずに音声をコピーします
出力コンテナが、MKV のような(ほとんどの)コーデックを扱えるのであれば、オーディオストリームとビデオストリームの両方をコピーすることができます
ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv
オーディオストリームを入れ替えます
あなたの入力ビデオにはすでにオーディオが含まれており、あなたはそれを置き換える場合は、どのオーディオストリームを取るためにffmpegを伝える必要があります
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4
-map
オプション を指定すると、fffmpeg は第一入力からの第一ビデオストリームと第二入力からの第一オーディオストリームのみを出力ファイルに使用します
389 Patrick Georgi 2011-05-01
私は私の評判と最初の回答にコメントを書くことは許されていないので、私はWebMSをエンコードするときにこの問題を抱えていたので、ここで補遺。 あなたのオーディオストリームは、例えば、ビデオストリームよりも長い場合は、それをカットしなければならないか、そうでない場合は、静止画とオーディオが実行されているとして、最後のビデオフレームを持っていることになります
どちらかのストリームをカットするには、-i “file.ext “の前に -ss [hh:mm:ss] -t [ss]を使用することができます。 -ss […] はカットする開始点を定義します
ffmpeg.exe -ss 00:00:10 -t 5 -i "video.mp4" -ss 0:00:01 -t 5 -i "music.m4a" -map 0:v:0 -map 1:a:0 -y out.mp4
19 user136036 2015-01-10
コマンドプロンプト(windows+R -> Cmd+Enter)を開きます。そして、オーディオファイルとビデオファイルがあるフォルダの中に移動します。このコマンドを適用します
ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4
outPutFile.mp4
(オーディオとビデオのマージされたファイル)という名前の新しいファイルを取得します
9 UniCoder 2015-04-16
これは私には効果がありました
ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4
6 Ronald 2015-03-05
mencoderを使ってみてください。私は-audiofile
引数を使っています。しかし、私は一般的にffmpegを使っているので、このアドバイスは塩を一つまみにして受け止めてください
そして、もしあなたがWindowsを使っているなら、Mediacoder (悲しいかな、もうオープンソースではありません)が動作します…基本的には多くのgnuエンコーダーといくつかの不自由なエンコーダーのフロントエンドです
1 Wyatt8740 2013-03-12
1つは、異なる長さのオーディオとビデオをマージし、また、フェードインとフェードアウトを適用したい場合には、次のように私のために働いた
ffmpeg -i Video001.mp4 -i Audio001.mp3 -af afade=t=in:st=0:d=3,afade=t=out:st=47:d=4 -c:v copy -c:a aac -shortest Output.mp4
私の場合、上記の動画は長さが51だったので、長さ3[Sec]のフェードインと4[Sec]のフェードアウト*を選択しました。フェードはフィルターでかけるので、音声をトランスコードする必要があります。上記のケースではエンコーディングをaac
にしました
答えは、@PatrickGeorgiの答えに重きを置いている
0 Royi 2020-03-26
また、オーディオファイルとビデオファイルを結合するために、https://youtu.be/1IHFp2eROYkをmencoderで試してみることもできます
0 Shaurya Mehta 2020-06-06
これを行うためのPythonスクリプトを作ったので、よかったら試してみてください。githubで入手してください。https://github.com/mmakarov/replicator
またはこちらの動画をご覧ください。https://www.youtube.com/watch?v=4Uu1hS3-eQM
リプリケータは、いくつかのビデオファイル、透明オーバーレイ、テキストエリアをmp3オーディオトラックにマージするためのPythonスクリプトです。最終的な動画はオーディオトラックと同じ長さになります。動画の長さは自動的に計算されます
私は、MP3のオーディオトラックで、ビデオ上のテキスト領域を追加し、PNGの透明なオーバーレイで任意のビデオシーケンスファイルをマージしようとすると、このスクリプトを作ってきました。結果のビデオファイルは、Youtubeや他のビデオホスティングサービスにアップロードする準備ができています
お好みで変えてみてはいかがでしょうか
使用方法: 0.ターミナルを開き、次のように入力します: git clone https://github.com/mmakarov/replicato…
- あなたのビデオファイルを’source1.mp4’、’source2.mp4’などのようにプロジェクトディレクトリに配置します
- PNGの透過画像をプロジェクトディレクトリに’overlay.png’として配置します
- MP3ファイルを’voice.mp3’としてプロジェクトディレクトリに入れます
- ターミナルで実行します: python3 source-to-medium.py (ここでは’medium.mp4’が作成されます)
- 必要に応じてテキストエリアの内容を入力してください…source*.mp4ファイルを1つのmedium.mp4に変換するのに時間がかかります
- ターミナルで実行すると、python3 medium-to-fin.py …最終的な動画の長さを、voice.mp3.length() / medium.mp4.length() = silent_fin.mp4.length()で割った長さにします…また、音声トラックとしてvoice.mp3をsilent_fin.mp4に追加します
- ようやくyoutube_ready.mp4ファイルができました
警告:ソースにロシア語のコメントがあります
0 Maksim Makarov 2020-08-06