youtube-dlとffmpegで動画編集

#インストール

```:mac
brew install ffmpeg
#いっぱいオプション入れるとき
brew reinstall ffmpeg --with-vpx --with-vorbis --with-libvorbis --with-vpx --with-vorbis --with-theora --with-libogg --with-libvorbis --with-gpl --with-version3 --with-nonfree --with-postproc --with-libaacplus --with-libass --with-libcelt --with-libfaac --with-libfdk-aac --with-libfreetype --with-libmp3lame --with-libopencore-amrnb --with-libopencore-amrwb --with-libopenjpeg --with-openssl --with-libopus --with-libschroedinger --with-libspeex --with-libtheora --with-libvo-aacenc --with-libvorbis --with-libvpx --with-libx264 --with-libxvid

brew install youtube-dl
```

#フォーマット変換
##mov ファイルから mp4

```
ffmpeg -i movie.mov -vcodec copy -acodec cop out.mp4
```

#フレームレートの操作
1秒間に10フレームに変更

```
ffmpeg -i movie.mov -r 10 movie.mov
```


#動画から静止画を取り出す

```
#旧バージョン
ffmpeg -i aaa.mov -ss 1 -vframes 1 -f image2 %04d.png
#新バージョン
ffmpeg -i aaa.mov -ss 1 -r 1 -f image2 %04d.png
```


#youtube-dlからのffmpegのmp3変換

```
youtube-dl https://www.youtube.com/watch?v=MTxBotYsPXgI

ffmpeg -i movie.mp4  movie.mp3
```


圧縮(フレームレート下げる)


```
ffmpeg -i hoge.mov -r 30 hoge.mov
```

圧縮(コーデック変える)

```
ffmpeg -i [hoge].mp4 -f mp4 -vcodec libx264 512k [hoge]圧縮版.mp4
```

リサイズ


```
ffmpeg -i [hoge].mp4 -s 1280x720 [hoge].mp4
```



#udpストリーム

```
ffmpeg -i hoge.mp4 -f mpegts "udp://127.0.0.1:2000"
```

#ffplay

一回入れちゃってる場合は消して入れる。    

```
brew uninstall ffmpeg
or
brew uninstall --ignore-dependencies ffmpeg
```

ffplayと共に入れる。ビルドするので時間かかる。    

```
brew install ffmpeg --with-sdl2
```

参考
https://steemit.com/mac/@manero666/how-to-install-ffmpeg-on-mac-osx-with-ffplay




#用語
##コーデック
符号化方式を使ってデータのエンコード（符号化）とデコード（復号）を双方向にできる装置やソフトウェアなど。(wikiより)動画では圧縮方式がいくつかある。

##コンテナフォーマット
音楽ファイルや動画ファイルやその他のファイルを圧縮したり保持できる標準化されたフォーマット。
動画であればmp4など。
https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88#.E7.94.BB.E5.83.8F.E3.82.B3.E3.83.B3.E3.83.86.E3.83.8A

#mp4フォーマット

![MPEG-4_boxes.jpg](https://qiita-image-store.s3.amazonaws.com/0/64334/31bde8db-0388-5329-4829-26ba5dcb32a9.jpeg)

http://mpeg.chiariglione.org/standards/mpeg-4/mp4-file-format


# H.264とは


https://sgforum.impress.co.jp/article/987
https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=7255
http://koboldtodragon.hatenablog.com/entry/2016/10/28/002550
https://ygoto3.com/posts/streaming-technology-basics-for-frontend-engineers/

# rtspを再生する

```:mac
brew install ffmpeg --with-sdl2
or
brew reinstall ffmpeg --with-sdl2
```


```
ffplay -max_dey 500000 -rtsp_transport udp rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
```

<img width="661" alt="スクリーンショット 2018-12-25 20.49.01.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/ec6a5b32-9d6c-f87d-c083-4496f6ab4c71.png">

## トラブルシューティング

数年に1回アップデートが必要


```
$ brew reinstall libvmaf
$ xcode-select --install
$ brew reinstall ffmpeg
```

https://qiita.com/mattsunkun/items/b3539302a5d33303e252



#参考
https://yuichon.com/2016/02/ffmpeg-install/
http://blog.denivip.ru/index.php/2013/10/how-to-live-stream-video-as-you-shoot-it-in-ios/?lang=en

スライド
https://slhck.info/ffmpeg-encoding-course/#/12

チップス
https://gist.github.com/revolunet/57a84ae4353615561b0a
フィルタ
http://nico-lab.net/how_to_use_frei0r_filer_with_ffmpeg/

ソースを見て勉強する

https://github.com/emericg/MiniVideo/blob/975dd06ac0aad090692c2d983c7076a39d0fc1e7/minivideo/src/decoder/h264/h264_parameterset_struct.h