Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

ffmpegで画質を落としつつ動画の冒頭1分間を切り出し

More than 3 years have passed since last update.

ffmpegとにかく多機能で全部入り感あってすごいなと思いました。(小並感
動画とか音声に関する事なら何でも出来そう。

要件

  1. 売りモノの動画から、サンプル動画として冒頭1分だけ切り出したい。
  2. 転送量やストレージ使用増を考えて、サンプル動画の画質、音質は落とす。
  3. 1分で無理矢理ぶった切るので、少しでも違和感なく再生が終わる感じにフェードアウトしたい。
  4. サンプル動画には、「この動画はサンプルです」、的な注意書きを表示したい。

使いかた

まず今回辿り着いたコマンドはこちら。こんなの絶対覚えてられない。明日には忘れる。
input.mp4から、要件に基づいた処理を行ってoutput.mp4を出力。なおinput.mp4は消えたりしないので安心。

console
ffmpeg -i input.mp4 -t 60 \
-b:v 512k -b:a 32k \
-vf "movie=its_sample.png [watermark];[in][watermark] overlay=main_w-overlay_w-40:main_h-overlay_h-40 [out],[out]fade=out:1740:60" \
-af afade=t=out:st=58:d=2 \
output.mp4
  • -iは元ファイルの指定。
  • -tは切り出したい秒数。今回は開始から60秒。 -ssオプションで、開始位置の指定も可能。-t 60 -ss 30だと開始30秒目から、60秒を切り出す。-ssの指定が無い場合は最初から。
  • -b:vはビデオのビットレート指定。今回は512k。ファイルサイズと質のトレードオフなので、何パターンかやってみて調整。
  • -b:aはオーディオのビットレート指定。今回は32k。こちらも要調整。
  • -vfはビデオフィルタ。ffmpeg激ヤバポイント。サンプルですよテキスト(画像)を埋め込んだ後、開始から1740フレーム目から60フレームかけてフェードアウトしますよ。
  • -afはオーディオフィルタ。開始から58秒目から2秒かけてフェードアウトしますよ。

所感

  • フィルタすごい、やばい。
  • ビデオフィルタもオーディオフィルタみたいに秒で指定できればいいのに。
    ffmpeg -i input.mp4で、フレームレート調べて30fps、60秒だから1800フレーム、最後2秒でフェードアウトしたいから1740:60ね、と計算するのが面倒だった。もしくは、-1:60みたいに指定できればいいのに。

  • オプションの指定順序によって動作が異なる?気をつけよう。

  • フェードアウトするにあたって、もしフレームレートの違う動画が混在してたら困るから固定しといたろ、ついでにフレームレート落として更にファイルサイズ減らそう!と思って安易に-r 10を指定したら、動画と音声がずれてしまった。調べたらwikipediaでこんなの出てきた。

参考

http://takuya-1st.hatenablog.jp/entry/2014/01/14/104752
http://fftest33.blog.fc2.com/blog-entry-80.html
http://d.hatena.ne.jp/zariganitosh/20150619/understand_ffmpeg
http://www.84kure.com/blog/2014/10/14/ffmpeg-%E5%8B%95%E7%94%BB%E3%81%AB%E9%80%8F%E3%81%8B%E3%81%97%E7%94%BB%E5%83%8F%E3%82%92%E5%85%A5%E3%82%8C%E3%82%8B%E3%81%AB%E3%81%AF/

3waygood
bell-face
チームで売上を最大化する国内No.1のオンライン営業システム「bellFace(ベルフェイス)」を提供するベルフェイス株式会社の公式アカウントです。3,000社以上の導入実績。いつもの電話で、対面以上の成果を。
https://recruit.bell-face.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away