ffmpegでmovからmp4に変換する。macOS Mojava

2018-11-10
macffmpeg
    

目次

概要

ffmepgを用いてMacやiPhoneで撮影した.movファイル形式の動画を.mp4に変換する。

環境

macOS Mojava ffmpeg 4.1

ffmpegの準備

homebrewでffmpegをインストールします。

brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype \
  --with-libass --with-libquvi --with-libvorbis --with-libvpx --with-opus \
  --with-x265 --with-webp

brew install ffmpegでも問題ないとは思いますが、色々なオプションがあるのでとりあえずつけときました。

(homebrewについて)

変換実行

以下のコマンドを叩きます。

ffmpeg -i sample.mov -pix_fmt yuv420p sample.mp4

すると以下のようなメッセージが出てきます。

ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfdk-aac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-opencl --enable-videotoolbox --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/2.3.0/include/openjpeg-2.3 --enable-nonfree
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sample.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2018-02-06T03:17:01.000000Z
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: MacBookPro12,1
    com.apple.quicktime.software: Mac OS X 10.13.3 (17D47)
    com.apple.quicktime.creationdate: 2018-02-06T12:16:59+0900
  Duration: 00:00:44.42, start: 0.000000, bitrate: 2432 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 576x1024 [SAR 1:1 DAR 9:16], 2263 kb/s, 59.80 fps, 60 tbr, 6k tbn, 12k tbc (default)
    Metadata:
      creation_time   : 2018-02-06T03:17:01.000000Z
      handler_name    : Core Media Video
      encoder         : H.264
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      creation_time   : 2018-02-06T03:17:01.000000Z
      handler_name    : Core Media Audio
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x7ff9b98b0200] using SAR=1/1
[libx264 @ 0x7ff9b98b0200] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7ff9b98b0200] profile High, level 3.2
[libx264 @ 0x7ff9b98b0200] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'sample.mp4':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    com.apple.quicktime.creationdate: 2018-02-06T12:16:59+0900
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: MacBookPro12,1
    com.apple.quicktime.software: Mac OS X 10.13.3 (17D47)
    encoder         : Lavf58.20.100
    Stream #0:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 576x1024 [SAR 1:1 DAR 9:16], q=-1--1, 60 fps, 15360 tbn, 60 tbc (default)
    Metadata:
      creation_time   : 2018-02-06T03:17:01.000000Z
      handler_name    : Core Media Video
      encoder         : Lavc58.35.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2018-02-06T03:17:01.000000Z
      handler_name    : Core Media Audio
      encoder         : Lavc58.35.100 aac
frame= 2665 fps=186 q=-1.0 Lsize=    1885kB time=00:00:44.42 bitrate= 347.6kbits/s dup=8 drop=0 speed= 3.1x
video:1802kB audio:11kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.941604%
[libx264 @ 0x7ff9b98b0200] frame I:13    Avg QP:17.69  size: 36922
[libx264 @ 0x7ff9b98b0200] frame P:846   Avg QP:20.81  size:  1347
[libx264 @ 0x7ff9b98b0200] frame B:1806  Avg QP:23.53  size:   125
[libx264 @ 0x7ff9b98b0200] consecutive B-frames:  6.7%  7.4%  4.6% 81.4%
[libx264 @ 0x7ff9b98b0200] mb I  I16..4: 45.0% 30.7% 24.3%
[libx264 @ 0x7ff9b98b0200] mb P  I16..4:  1.4%  1.8%  0.5%  P16..4:  3.6%  0.6%  0.3%  0.0%  0.0%    skip:91.6%
[libx264 @ 0x7ff9b98b0200] mb B  I16..4:  0.2%  0.1%  0.0%  B16..8:  2.7%  0.1%  0.0%  direct: 0.1%  skip:96.8%  L0:51.3% L1:47.6% BI: 1.1%
[libx264 @ 0x7ff9b98b0200] 8x8 transform intra:41.5% inter:58.0%
[libx264 @ 0x7ff9b98b0200] coded y,uvDC,uvAC intra: 17.3% 28.1% 21.7% inter: 0.3% 0.7% 0.3%
[libx264 @ 0x7ff9b98b0200] i16 v,h,dc,p: 57% 37%  4%  3%
[libx264 @ 0x7ff9b98b0200] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 13% 54%  2%  1%  1%  1%  1%  2%
[libx264 @ 0x7ff9b98b0200] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 23% 19%  5%  5%  5%  5%  4%  5%
[libx264 @ 0x7ff9b98b0200] i8c dc,h,v,p: 54% 26% 17%  3%
[libx264 @ 0x7ff9b98b0200] Weighted P-Frames: Y:1.9% UV:1.8%
[libx264 @ 0x7ff9b98b0200] ref P L0: 77.9%  7.1% 11.2%  3.8%  0.0%
[libx264 @ 0x7ff9b98b0200] ref B L0: 72.7% 25.3%  2.0%
[libx264 @ 0x7ff9b98b0200] ref B L1: 97.4%  2.6%
[libx264 @ 0x7ff9b98b0200] kb/s:332.30
[aac @ 0x7ff9b98b0e00] Qavg: 65536.000

無事sample.mp4が生成されました。

WindowsおよびMac(quicktime)で再生できることが確認できました。

また、 13MBの動画が2MBに圧縮されました。

めでたし。

    
s-yoshiki
s-yoshiki
githubtwitterqiita
Web作ってますが、インタラクティブなプログラミングも好きです。
JavaScript / Vue / node.js / PHP / AWS / OpenCV

関連記事

Macでも利用できるDBクライアント MySQL PostgreSQL Oracle など
デスクトップ系ツール TablePlus DBeaver MySQL Workbench Sequel pro Webアプリケーション phpMyAdmin Adminer 参考 Macで利用できるDB (MySQL PostgreSQL Oracle…

fswatch rsync unison を使ってリアルタイムで同期する
環境・バージョン情報等 fswatch バージョン情報 インストール fswatch + rsync で同期する fswatch + unison で同期する unisonの設定 同期コマンド 参考 fswatch + rsync or fswatch…

macOSにOpenCV4をインストール
パッケージの情報 インストール 試す with Python3 macOS (MacBook Pro 2018 13 inchi)にhomebrewを用いてOpenCVをインストールする方法。 パッケージの情報 まず、brew search と brew info…

SwitchHosts hostsの設定を変更するツール
SwitchHosts インストールする homebrew scoop それ以外 設定ファイル 参考 ローカル開発環境を利用して開発している際に、ローカルのIPに対してのホスト名をhosts…

fswatchで変更されたファイルを監視する
fswatch インストール 基本的なコマンドの使い方 試す ディレクトリを監視できるサービスfswatchをMacでインストールして使ってみました。 fswatch https://github.com/emcrisostomo/fswatch…

エンジニアなMacBookのセットアップ 開発環境の構築
ブラウザ関連 Homebrewのインストール ターミナル環境系 Hyper エディタ VSCode typora CLIツール Git 言語系 Python node.js MacBookPro…

多段SSHの設定 踏み台経由
設定 基本的なconfigの記述 基本的な踏み台経由のSSH設定 プロキシを経由して踏み台に接続するSSH設定 踏み台を経由して多段SSHを行う際の設定についてのメモ。 設定 SSHの設定はMac/Linux/WSLであればホームディレクトリ下の~/.ssh…

Cyberduck で AWS S3に接続する
Cyberduck で S3に接続 検証環境 接続手順 S3接続ユーザの作成 ユーザ作成ページまでの遷移 アカウント詳細設定 アカウント権限の設定 アクセスキーIDとシークレットアクセスキー S3バケットを作成する オプションの設定 アクセス許可の設定 S…

Macにdockerをインストール
インストール Macにdockerをインストールします。 インストール homebrewを使ってインストールします。 https://brew.sh/index_ja ターミナルから以下のコマンドで実行します。 hellow world…

gitbookを使ってドキュメントを生成する
どんなものができるのか 検証した環境 gitbookのインストール プロジェクトの作成 ディレクトリ構成について ドキュメントの記述 日本語化 ビルドインサーバの起動 ビルドとHTMLの生成 PDFの生成 参考 GitBook…

最新の投稿

GitHub Actions で Gatsby をビルドし Amazon S3 にデプロイする
GitHub Actions について あらかじめ準備しておくもの AWS IAM ユーザを環境変数にセットする workflowの記述 ビルド バッジを利用する 終わりに 参考にしたところ Gatsbyで作った静的サイトを、GitHub Actions…

cloudinaryによる画像ファイルの管理 はじめてみる
目的 cloudinary について 他のサービスとの比較 料金プラン アカウントの登録 利用してみる ダッシュボード 画像の編集 APIベースでのアクセス 感想 参考 画像の管理や配信、さらには加工といった事ができるsaas型のcloud…

JavaScriptによる2分探索(バイナリサーチ) のサンプルコード
2分探索について ソース 参考 JavaScriptで2分探索(バイナリサーチ)を実装してみました。…

Vue.jsで作成された、ちょっと面白くて役立ちそうなサービス
UIコンポーネント VueSocial CKEditor 5 Vue.Draggable Vuetable 2 vuejs-datepicker Kalendar Vue Apexcharts Vue.js Google Charts vue-cart WebIDE…

GitHubのリポジトリをGitLabに同期する GitLabのミラーリング機能
GitLabのミラーリングについて GitHubのリポジトリをGitLabに反映する その他 参考 GitLabのミラーリング機能によりGitHubなどの外部のリポジトリとのミラーリングを行うことができます。 これを使ってGitHub…

WordPressやめます Gatsbyに移行しました
これまでのWordPress運用 なぜWordPressを捨てるのか? なぜGatsbyを利用するのか? gatsbyについて WordPressから記事の救出 移行対象記事の抽出 記事の置換 Gatsbyテーマの作成 Gatsby…

WordPressのDBから記事データを抽出する
WordPressのDB関連図 公開記事一覧の取得 タグ・カテゴリの取得 サムネイルの取得 おまけ: PHPスクリプト化しました 参考にしたところ WordPressにため込んだデータMarkdown化しGatsby…

ハイフンとかマイナスとかダッシュとか

Firebase + Nuxt で認証付きページを作るときに参考にしたいところ
Webアプリケーションのセッション管理にJWT導入を検討する際の考え方 Service Worker によるセッション管理 ユーザー セッションの管理 Nuxt.jsとFirebaseでSPA×SSR×PWA×サーバーレスを実現する CookieとセッションとJWT SSR…

GolangをCGIとして実行する
環境 golang パッケージ ソースと実行 ビルドとサーバ実行 標準ライブラリのみ Golang を CGIとして実行する際のメモ 環境 golang パッケージ 以下のモジュールを利用しています。 github.com/gorilla/mux…

Tags

Dates

© 2020   404 motivation not found