web-dev-qa-db-ja.com

.ogvビデオをトリミングして結合する方法

現在、ソフトウェアツールのビデオチュートリアルを作成しています。 RecordMyDesktopでいくつかの短いビデオ(30秒から4分)を記録しましたが、これを単一のビデオにマージする必要があります。タスクパイプラインは次のようになります。

  1. ファイルをogvからavi(または別の実行可能な形式)に変換します。

  2. ビデオから不要なセクションを切り取ります(RecordMyDesktop自体との対話など)。

  3. トリミングされたさまざまなビデオを単一のファイルにマージします。

簡単に聞こえますが、私は過去数週間、成功せずにそれをやろうとして、まるごと物語を生きてきました。以下に、これまでに行った手順と見つかった問題の詳細を示します。

ogvからaviへの変換

このテーマについては、複数のツールを指すさまざまなスレッドがあります。これらのスレッドの多くは時代遅れに思えますが、最終的には avconvを使用して成功しました 、たとえば:

avconv -i "input.ogv" -vcodec mjpeg -acodec mp2 -qscale 10 "output.avi"

以前はffmpeg、Avidemux、Livesなどで試しましたが、Ubuntu 14.04でエラーまたはクラッシュが発生します。

avconvを使用すると、画質が目に見えて失われ、かなりの量のノイズがオーディオに追加されますが、壊滅的なものはありません。

クロッピング

このタスクで、フレームレベルでのトリミングを可能にする唯一のツールはAvidemuxです。 Livesなどの他の製品もこの機能を宣伝していますが、実行することはできません。

Avidemuxでこのタスクを実行する際にエラーはありませんでしたが、結果のビデオで問題が発生し始めました。トーテムはそれらの1つをプレイできず、例外を発行します。 OpenShotは、Avidemuxでトリミングされたこれらのビデオの一部を開くときに警告も発行します。

マージ

これまでのところ、5つの異なるツールでこのタスクを試しましたが、すべて失敗しました。

  • OpenShot-4 GbのRAMをいっぱいにして、4 Gbのスワップを埋め続けたところ、システムが応答しなくなり、再起動を強制します。合計すると、トリミングされたaviビデオの合計は200 MBをわずかに超えます。

  • avimerge -警告またはエラーメッセージを発行せずにマージされたファイルを生成しますが、画像と音声は同期していません。前の手順で切り取られた部分から再生される音が聞こえる瞬間があります。

  • Kino-また、エラーを出さずにマージされたファイルを生成しますが、画像を完全に修正し、常にちらつき、上下にジャンプして、理解できなくなります。

  • cat+mencoder -最終結果avimergeと同様の問題があります。

  • Avidemux-最終的にはファイルをマージすることもできますが、プロセスは明らかではありません。結果として生じるビデオは、同期していない音と画像をもたらします。 Totemなどのプレーヤーでマージされたファイルを開くと、長さはAvidemuxによって報告されるものの約2倍になります。

質問

この段階で、おそらく切り取り(したがって詳細なストーリー)が原因で、マージステップの上流で何かがおかしいと思われます。

私の質問は、RecordMyDesktopで作成されたビデオを使用して、これら3つの明らかに単純なタスクを実行する方法です。まったく新しい処理パイプラインまたはステップの1つでの変更についての提案を歓迎します。 RecordMyDesktopの経験豊富なユーザーからのコメントも歓迎します。

更新Icatおよびmencoderとのマージ結果を含めました。

更新II:Avidemuxとのマージ結果を含めました。

4
Luís de Sousa

おそらく、別のワークフローを探しています。

最初にoggz-chopで必要な部分を切り取ることができます。ターミナルに入力するだけです:

oggz-chop -o output.ogv -s start -e end input.ogv

これにより、保持したい適切なファイルが得られます。後でそれらを処理できるように、それらにいくつかの順番で名前を付けてください。

その後:

oggCatコマンドがあります。このコマンドは、2つ以上のoggファイルを連結して、提供されたすべての合計に等しい長さの1つのoggファイルを生成できます。

役立つコマンドラインは次のとおりです。

oggCat output.ogv infile1.ogv infile2.ogv infile3.ogv ...

oggJoinという同じパッケージの別のコマンドと混同しないでください。このコマンドはまったく異なることを行い、並行して実行される複数のストリームを持つ単一のファイルを作成します。

今、トリミングのために、Theoraストリームのヘッダーを編集することで、ロスレスでそれを行う方法があることを知っていますが、それを行う方法をまだ理解できませんでした。道を見つけたら答えを更新します。

3
v010dya