
まとめ:数年前に YouTube からダウンロードし、flv として保存した古い映画があります。そこから 13 分のクリップを抽出したいのですが、そのためには、ffmpeg を使用して mp4 に変換し、DaVinci にロードしてクリップを抽出しました。次に、Handbrake を使用して圧縮しました。しかし、これを行うと、HandBrake によってフレーム サイズが大幅に縮小され、圧縮されたクリップは元のクリップに比べてややぼやけています。
HandBrake がフレーム サイズの縮小を強制するのはなぜですか。また、正しいフレーム サイズで出力するにはどうすればよいですか。
詳細:
flv ファイルは 268 MB、再生時間は 107 分、フレーム サイズは 318x240、フレーム レートは 25 です。
のffmpeg コマンド以前はmp4に変換していました:
ffmpeg -i input.flv -c copy output.mp4
約 1 秒かかりました。結果は 264 MB です。
それを DaVinci に読み込み、クリップを抽出し、mp4、H.265、318x240、25 fps としてレンダリングしました。
その結果は 51.4 MB、13:19 mm:ss です。MediaInfo はこれが HEVC であると報告していますが、これは私が要求したとおり H.265 であることを意味すると理解しています。
サイズと時間の比率は、フルムービーよりもはるかに大きくなります。
- 映画: 264 MB / 107 分 = 2.5 MB/分。
- クリップ: 51.4 MB / 13.33 分 = 3.9 MB/分
HandBrake でクリップを読み込むと、ソースは 318x240、25 fps であると表示されます。H.265 形式であるにもかかわらず、HandBrake は H.264 形式であると表示します。また、HandBrake はソース情報と矛盾し、「トラック」の下に 30 fps でサイズが 234x174 であると表示します。
========================
Handbrake の「ビデオ」タブでは、エンコーダーは H.264、フレーム レートは 30 と表示されます。RF は 22 です。
========================
これを 265 と 25 に変更しました。
========================
「寸法」タブにはサイズが 318x240 であると再度表示されますが、次のように表示されます。
拡大縮小されたサイズと最終的な保存サイズは 234x174 です。いくつかクリックしてみましたが、出力サイズを変更できません。
========================
これを実行すると、出力は 22 MB となり、ファイル サイズが大幅に削減されます。
- 圧縮クリップ: 22 MB / 13.33 分 = 1.7 MB/分
しかし、フレームサイズは234x174です:
ビデオはオリジナルと比べてややぼやけていますが、これはフレーム サイズが縮小されたことが原因であると考えられます。
DaVinci によってレンダリングされたクリップ。
これは問題のヒントになるかもしれません。画像がプレーヤーのウィンドウ全体を占めていません。DaVinci はビデオのスケールを縮小しましたか?
HandBrake がフレーム サイズの縮小を強制するのはなぜですか。また、正しいフレーム サイズで出力するにはどうすればよいですか。
答え1
質問者からの編集: 必要な回答が得られましたので、この回答を受け入れました。ただし、詳細については、私が追加で回答した内容を参照してください。
Handbrake は、比較的ユーザーフレンドリーなプリセットを備えた FFMPEG のスキンであるということを覚えておくと役立つかもしれません。現在、プロセスは FFMPEG > DaVinci > FFMPEG と進んでいますが、追加の手順が必要な理由は特に見当たりません。したがって、中間の手順をすべてスキップし、FFMPEG を使用してビデオをクリップするだけです。次に、ニーズの基本的な部分をカバーする可能性のある別の質問を示します。https://stackoverflow.com/questions/21420296/how-to-extract-time-accurate-video-segments-with-ffmpeg
クリップの開始時間を で指定し-ss 00:00:00
、終了時間を で指定-to 00:00:00
します。上記でリンクした質問のこの例のように:
ffmpeg -y -i [INPUT.file] -ss 00:42:42 -to 00:84:84 -codec copy [OUTPUT.file]
これを行うと、現在使用している複数の手順によって発生する問題の可能性がすべて排除されます。
答え2
私は「music2myear」さんの回答を受け入れます。必要な回答が得られました。しかし、何らかの理由で、出力ファイルのサイズは気にしていないと想定されていました。しかし、私はその点を気にしており、それが HandBrake を実行していた理由です。
そこで、その回答のパラメータを変更しましたcodec
。結果の要約は次のとおりです。
DaVinci からの H.265 クリップ: 51.4 MB
DaVinci クリップ、次に HandBrake: 22.0 MB (ぼやけている)
FFmpeg からのクリップ
-codec copy
: 29.5 MBFFmpeg からのクリップ
-codec:v hevc -codec:a copy
: 15.2 MB
FFmpeg の結果は両方とも品質が良いようです。 コーデック を使用した場合はcopy
約 1 秒かかり、 を使用した場合hevc
は約 1 分かかりました。
コーデックを使用した mFFmpeg の結果、hevc
ファイル サイズが大幅に削減されました。
- 映画: 264 MB / 107 分 = 2.5 MB/分。
- DaVinci からのクリップ: 51.4 MB / 13.33 分 = 3.9 MB/分。
- コーデック付き FFMpeg からのクリップ
hevc
: 15.2 MB / 13.33 分 = 1.1 MB/分。
だから、HandBrake(またはDaVinciとHandBrakeの組み合わせ)がフレームサイズを縮小する理由については答えがありません。しかし、適切なフレームサイズ(および効率的なファイルサイズ)で高品質の出力を得る方法については答えがあります。FFmpegを直接使用する。
答え3
これは回避策であり、正確な答えではありません。出力の保存方法を完全に制御できる GUI を使用して、プロセス全体を 1 つのステップで実行します。
2つの無料オープンソースビデオエディタ、ショットカットそしてオープンショット(Linux版、Mac版、Windows版ともに利用可能で、Windowsアプリはどちらもワイン(Ubuntuマシンでも)は、例えばFLVビデオファイルを開いて編集し、編集した出力をさまざまな形式で保存したり、解像度や品質を調整したりできます。代替ビデオエディタ、 あまりにも。
上のスクリーンショットはOpenShotビデオエクスポートダイアログ、そしてショットカット出力をさらに細かく制御できます。編集するセグメントを選択し、次のようなフィルターを適用します。シャープ必要に応じて、色域 (例: ブロードキャスト、MPEG、JPEG)、解像度、フレーム レート、圧縮などをすべて 1 つのツールでユーザーが制御してエクスポートします。どちらのプログラムも、適切なデフォルトがプリセットされているため、使いにくいことはありません。