SlideShare a Scribd company logo
1
ffmpeg 5 分間講座
Tetsuyuki Kobayashi
2019.5.28 Streaming Conference #7
2

The latest version of this slide will
be available from here

http://www.slideshare.net/tetsu.koba/presentati
ons
3
Who am I?

以前はライブ配信機器を開発してました

今はピクシブでライブ配信のサービス基盤を開
発しています

Blogs

https://qiita.com/tetsu_koba

http://d.hatena.ne.jp/embedded/

http://kobablog.wordpress.com/(English)

Twitter

@tetsu_koba
ffmpeg とは

オープンソースの動画ツール

https://ffmpeg.org/

各種コンテナ、コーデックについて幅
広く対応している
ffmpeg とは

障害解析、即席対応の友
WikiPedia ” ”アーミーナイフ から画像引用
私自身で ffmpeg を使った発表、記事

Raspberry Pi Zeroと カメラモジュ
ールで作るライブ配信実験機

AV1新しいビデオコーデックの を使っ
HLSて無理やり でストリーミングし
てみた

ffmpeg RTPで でストリーミングして
みた

... など
ffmpeg で当たり前すぎて
あまり説明されない話

オプションの順番に意味がある

-c copy オプション

-re オプション


おまけ : -h オプション
オプションの順番に意味がある

同じオプションでも -i の前後で意味が変わる
ffmpeg [ 入力の設定 ] -i 入力ファイル [ 出力の設定 ] 出力ファイル
ffmpeg の基本の処理の流れ
Input fileInput file
Encoded
data packets
Decoded
frames
Output file
Encoded
data packets
Filtered
frames
Demuxer Decoder
Filter
Muxer Encoder
ffmpeg の基本の処理の流れ
Input fileInput file
Encoded
data packets
Decoded
frames
Output file
Encoded
data packets
Filtered
frames
Demuxer Decoder
Filter
Muxer Encoder
入力の設定
出力の設定 実際は映像と音声が
あるからもう少し複雑
-c copy オプション

-c:v copy -c:a copy の省略記法

デコード、エンコードを行わない

速い、劣化しない、 CPU 負荷が軽い

映像音声の加工が不要な場合は必ずこれをつけ
る
ffmpeg -i input.ts -c copy -hls_list_size 0 out.m3u8
input.ts を HLS 用に変換する例
-c copy のときの処理の流れ
Input fileInput file
Encoded
data packets
Output file
Demuxer
Muxer
Short cut !!
-re オプション

ffmpeg は通常は最速で処理しようとする

-re オプションをつけると入力のフレームレー
トに速度を調整してくれる

ライブストリーミングをシミュレートする時に
便利。
ffmpeg -re -i input.mp4 -c copy -f flv rtmp://...
input.mp4 をライブストリーミングのように RTMP で送信する例
おまけ : -h オプション

コマンドラインヘルプ

全てのオプションを表示するには
ffmpeg -h full | less
これでキーワード検索すると良い
15
Q & A
@tetsu_koba
Thank you for listening!

More Related Content

PDF
Try new transport protocol SRT
PDF
New VIdeo CODEC AV1
PDF
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
PDF
組み込みLinuxでのGolangのススメ(Go con版)
PDF
Try new transport protocol SRT (ver. 2)
PPTX
ライブストリーミング低遅延化の取り組み @ DeNA
PDF
Linuxのユーザーランドをinitから全てまるごとgolangで書く
PDF
WebOS Open Source Edition を試してみた
Try new transport protocol SRT
New VIdeo CODEC AV1
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
組み込みLinuxでのGolangのススメ(Go con版)
Try new transport protocol SRT (ver. 2)
ライブストリーミング低遅延化の取り組み @ DeNA
Linuxのユーザーランドをinitから全てまるごとgolangで書く
WebOS Open Source Edition を試してみた

What's hot (20)

PDF
組み込みLinuxでのGolangのススメ
PDF
インターネット生放送を支える技術としくみ2015年版
PPTX
FRESH LIVEへのSRT導入
PPTX
Kivy studies
PDF
真Drone入門
PDF
pythonでつくるiPhoneアプリ
PPTX
各OSにおいて、OpenCVをpythonから使う方法
PPTX
開発費0円でニコニコ生放送を作ってみた
PDF
197x Timer with Your Messages
PDF
PyCon JP 2014 plone terada
PDF
WebRTCの話
PDF
ZynqMP勉強会
PDF
密着!わたしのコンソールアプリ開発環境
PDF
Pyconjp2014_implementations
PDF
XML-RPC : Pythonが「電池付属」と呼ばれる理由
PPTX
NABShow報告:マルチCDNと最新ストリーミングプロトコル
PDF
Pythonでゲーム作る
PPTX
Moby Project
PDF
ニコニコ生放送のタイムシフトを無料で保存する方法
PDF
ニコニコ生放送のタイムシフトを無料で保存する方法
組み込みLinuxでのGolangのススメ
インターネット生放送を支える技術としくみ2015年版
FRESH LIVEへのSRT導入
Kivy studies
真Drone入門
pythonでつくるiPhoneアプリ
各OSにおいて、OpenCVをpythonから使う方法
開発費0円でニコニコ生放送を作ってみた
197x Timer with Your Messages
PyCon JP 2014 plone terada
WebRTCの話
ZynqMP勉強会
密着!わたしのコンソールアプリ開発環境
Pyconjp2014_implementations
XML-RPC : Pythonが「電池付属」と呼ばれる理由
NABShow報告:マルチCDNと最新ストリーミングプロトコル
Pythonでゲーム作る
Moby Project
ニコニコ生放送のタイムシフトを無料で保存する方法
ニコニコ生放送のタイムシフトを無料で保存する方法
Ad

More from Tetsuyuki Kobayashi (20)

PDF
Tricky implementation of Go ARM soft float
PDF
ARM 64bit has come!
PDF
Virtual memory 20070222-en
PDF
Simple and efficient way to get the last log using MMAP
PDF
Tips of Malloc & Free
PDF
Basic of virtual memory of Linux
PDF
PDF
ADB(Android Debug Bridge): How it works?
PDF
Tweaking Google TV emulator
ODP
Inter-process communication of Android
PDF
Android is NOT just 'Java on Linux'
PDF
Android ipm 20110409
PDF
Init of Android
PDF
Android On Ubuntu for developer
PDF
Reusing your existing software on Android
PDF
Logging system of Android
PDF
Logging system of Android
PDF
Froyo DalvikVM JIT
PDF
QEMU in Cross building
PDF
Using QEMU for cross development
Tricky implementation of Go ARM soft float
ARM 64bit has come!
Virtual memory 20070222-en
Simple and efficient way to get the last log using MMAP
Tips of Malloc & Free
Basic of virtual memory of Linux
ADB(Android Debug Bridge): How it works?
Tweaking Google TV emulator
Inter-process communication of Android
Android is NOT just 'Java on Linux'
Android ipm 20110409
Init of Android
Android On Ubuntu for developer
Reusing your existing software on Android
Logging system of Android
Logging system of Android
Froyo DalvikVM JIT
QEMU in Cross building
Using QEMU for cross development
Ad

some topic of ffmpeg