BobbyQuineのブログ(備忘録)

Linux関係の備忘録、その他タバコ、Vape関連なんかも。

ffmpegで色々弄ってみたお話

ども、BobbyQuineです。昨日sshサーバー作って、リモートにある動画ファイルをローカルのvlcで見る方法を書きましたが、ものによっては見ることのできないファイルがありました。例えばyoutube-dlでダウンロードしたmp4形式のファイルでも、1280*720は再生できましたが、1920*1080は再生できませんでした。通信速度が足りないのか何なのかはよくわかりません。もうちょっと調べてみます。さて、で、今回はリモートにある随分昔び作ったmkvファイルを再生しようとしたのですが、まぁ案の定無理。んじゃこっからはやったことをダラダラと。

前回の記事↓↓

http://bobbyquine.hatenablog.com/entry/2018/01/26/233604

 

ファイルの情報を

$ ffmpeg -i filename.mkv

で見てみるとビデオコーデックがmpeg2、オーディオコーデックがac3でした。

とりあえず音声部分だけ分離、aacに変換。(一回分離してるのはmp4でac3が対応してると思ってたから。)

$ ffmpeg -i filename.mkv filename.ac3

$ ffmpeg -i filename.ac3 filename.aac

次に動画の方だがとりあえずh264にしてみた。

$ ffmpeg -i filename.mkv filename.h264

で、あとは

$ ffmpeg -i filename.h264 -i filename.aac filename.mp4

ってやってみて、ほんじゃストリーミング再生してみましょってなったんだけど、どうにも読み込まない。原因不明、もうちょっと勉強しないとわからないのでとりま放置。

でも早く再生できるようにしたい。flvならできんじゃね?となったので

$ ffmpeg -i filename.mp4 filename.flv

ってやってみたんだけどなんか画像が汚い上にアスペクト比が変わっちゃってる。

まぁそりゃ二重エンコードしてんだからそうよねー、と今度は

$ ffmpeg -i filename.mkv filename.flv

でもこれもなんでか画像が汚い。(ついでにまだこの時点でもアスペクト比がおかしい).

で、だ。ちょっと調べてみたらh264 + aacはmp4でもflvでもサポートされてんのよ。んじゃさっき作ったmp4ファイルのコンテナ形式だけ変えてみてついでにアスペクト比も固定すっか、ってことで

$ ffmpeg -i filename.mp4 -vcodec copy -acodev copy -aspect 16:9 filename.flv

んで完成。画像もちゃんとしてるしローカルのvlcを使った再生もできるし。

メモ書き程度のクソ記事でした。バーイ!!