2017-01-11 13 views
2

ビデオから200x100サムネイルを取得するには、ffmpeg -ss 100 -i /tmp/video.mp4 -frames:v 1 -s 200x100 image.jpgを実行します。しかし、ソースビデオのアスペクト比が200x100と同じでない場合、サムネイルが歪んでしまいます(縦横に伸縮してしまいます)。ffmpegを使用して歪みのないビデオサムネイルを生成する

ffmpeg500x200ビデオが100pxが広すぎること、たとえば把握、およびビデオ400x200を作り、左から右から50px50pxを削除できる方法はありますか? 400x200200x100と同じアスペクト比なので、サムネイルには歪みがありません。

ffmpegによって生成されたサムネイルにこれを行うことができる他のツールがあることは知っていますが、ffmpeg以内でやり直してから再度サムネイルを処理する必要はありません。あなたのサムネイルサイズは200x100が固定されている場合は

+0

これは役立つかもしれない:https://stackoverflow.com/questions/8218363/maintaining-ffmpeg-aspect-ratio –

答えて

2

scaleフィルタでforce_original_aspect_ratioオプションを使用できます。

ffmpeg -ss 100 -i /tmp/video.mp4 -frames:v 1 -q:v 2 -vf "scale=200:100:force_original_aspect_ratio=increase,crop=200:100" image.jpg 
+0

ビデオが希望のサムネイルの縦横比よりも大きいか広い場合、これは同じですか?たとえば、動画のアスペクト比が100pxと大きすぎると、左右の均等部分が削除されます(それぞれ50px)。 – user779159

+0

@LordNeckbeard - スケーラはサードパーティのアプリケーションに従わない出力にSARを保存します。 Photoshop、 PNGではなくJPGのSARを尊重します。 Firefoxはどちらのフォーマットでもそれを尊重します。 – Mulvya

+0

@ user779159大きすぎる、または高すぎる場合は余分な部分を切り取ります。切り抜きは自動的に中央に配置されます。クロッピング座標を調整する場合は、[クロップフィルタのドキュメント](https://ffmpeg.org/ffmpeg-filters.html#crop)を参照してください。 – LordNeckbeard

4

、それは完璧でない限り1つの寸法は、200x100キャンバスやその他のオーバーシュートに合うようにスケールフィルタは、ソースとスケールのアスペクト比をチェックし

ffmpeg -ss 100 -i /tmp/video.mp4 -vf "scale='if(gt(dar,200/100),100*dar,200)':'if(gt(dar,200/100),100,200/dar)',setsar=1,crop=200:100" -frames:v 1 image.jpg 

実行一致。次に、クロップフィルターを中央から200x100に切り取り、範囲外の領域を処理します。

+0

これはあまり要求された寸法のものよりも出力が発生することができますし、作物が失敗する原因になります(たとえば115:87 SARの入力を使用します)。 – LordNeckbeard

+0

ええ、 '-1'はSARを考慮しません。修正されました。 – Mulvya

関連する問題