`cat`を使用してビデオファイルをマージすることは可能ですか?


17

catコマンドを使用してビデオファイルをマージすることは可能ですか?結果のファイルはシームレスに再生されますか?


1
やってみました?
ミスターリスター

3
実際にやった。しかし、ファイルサイズは両方の合計でしたが、どういうわけか結果には2番目のファイルが含まれませんでした。
ハメドモメニ

回答:


20

はい、可能です。ただし、すべての形式でサポートされているわけではありません。

ffmpeg FAQ

いくつかのマルチメディアコンテナ(MPEG-1、MPEG-2 PS、DV)では、ビデオファイルを連結するだけで結合できます。

RAW形式に変換する場合、ファイルを連結できる可能性も高くなります。

ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi

しかしcat、この方法で使用すると中間ファイルが作成されますが、これは必要ありません。これは、これらの中間ファイルの作成を回避するためのより良いアプローチです。

ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
ffmpeg -i concat:"intermediate1.mpg|intermediate2.mpg" -c copy intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi

1
2番目のバージョンではまだ中間ファイルを作成していませんか?
ジョンガワーズ

6

2種類のメディアファイルがあります

  • ストリーミング可能

  • ストリーミング不可

主な違いは、2つのファイル形式がメタ情報を埋め込む方法です。非ストリーミングフォーマット、メタinformationc(「ヘッダ」)は時々終わりに、通常最初に、ファイル内の特定の位置に格納されています。そのようなファイルを単純に連結することはできません。ファイルファイルの1つからのメタ情報は非標準の場所にあり、無視されるためです。

OTOH、ストリーミング可能なフォーマットは、ファイルを「途中で」再生し始めるリスナーを処理できる必要があります。したがって、これらの形式はメタ情報を再送信し続け、ファイル/ストリーム内で更新することさえできます。これらの形式は単純に連結できます。



1

BЈовићが言ったように、一般に、各ファイルには独自のヘッダーがあります。Ubuntu How Toのこの例を試してください。

mencoder -ovc copy -oac copy video1.avi video2.avi -o completevideos.avi 

0

いいえ、できません。すべてのビデオファイルにヘッダーがあるためです。ビデオをマージするには、ツール(たとえばffmpegmencoderなど)を使用する必要があります。


9
まったく正しくありません。生データを出力するrawvideoやyuv4mpegpipeなど、ヘッダーのないビデオ形式があります。ヘッダーがないためサイズが不明であるため、これらの形式を読み取るときにフレームサイズを指定する必要があるのはそのためです。
マルコ

2
どうしてDVファイルでうまくやったのですか?
ピチコス

1
@Pithikosわからない。多分あなたは:)魔法を練習
BЈовић
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.