少し落ち着いたので過去のメモを放出してみようかなと。
環境は, ffmpeg version 2.7.6-0ubuntu0.15.10.1 なのでバージョンによって違いがあるかも。
●基本の使い方とオプション類
ffmpeg -i [入力ファイル] [変換後ファイル]
- -vcodec copy は入力ファイルのコーデックを引き継ぐ
- -an は音声なし
- -vn は映像なし
- -acodec aac -strict experimental はAAC音声指定時に必要
- -acodec libmp3lame -strict unofficial はMP3音声指定時に必要
- -user-agent または -user_agent でuser-agentの設定
(参考)
- http://www.teradas.net/archives/3105/
- https://www.ffmpeg.org/ffmpeg-all.html#http
●トラブルシューテング
エラー:
Could not find codec parameters for stream 0 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size Consider increasing the value for the ‘analyzeduration’ and ‘probesize’ options
解決策:
オプションに -analyzeduration 2147483647 -probesize 2147483647 をつけると消える(-iよりも前につけること)
(参考) http://ch.nicovideo.jp/yogpstop/blomaga/ar221948
エラー:
[mp4 @ 0xc67a80] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0xc67a80] Codec for stream 1 does not use global headers but container format requires global headers
解決策:
オプションに -flags +loop+global_header をつけると消える
(参考) http://blog.k-tai-douga.com/article/47045073.html
エラー:
[mp4 @ 0x8b2760] Malformed AAC bitstream detected: use the audio bitstream filter ‘aac_adtstoasc’ to fix it (‘-bsf:a aac_adtstoasc’ option with ffmpeg)
av_interleaved_write_frame(): Operation not permitted
[mp4 @ 0x8b2760] Malformed AAC bitstream detected: use the audio bitstream filter ‘aac_adtstoasc’ to fix it (‘-bsf:a aac_adtstoasc’ option with ffmpeg)
解決策:
オプションに-bsf:a aac_adtstoascつけると消える
●How-to
m3u8をffmpegでまとめる
UAをiPhoneにしてweb-consoleから*.m3u8ファイルを取得
ffmpeg -user-agent “Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/47.0.2526.70 Mobile/13C71 Safari/601.1.46” -i “http://sample.com/xxx.m3u8” -flags +loop+global_header -bsf:a aac_adtstoasc -vcodec libx264 -c copy output.mp4
flvをmp4に変換する
before.flvをafter.mp4に変換する
ffmpeg -i before.flv -vcodec libx264 -b 500k -fpre /usr/share/ffmpeg/libx264-medium.ffpreset after.mp4
tsをmp4に変換する
before.tsをafter.mp4に変換する
ffmpeg -i before.ts -vcodec libx264 -acodec aac -strict experimental after.mp4
サムネイルを生成する
動画ファイルbefore.mp4の20秒のコマを抽出してafter.jpgに出力
ffmpeg -ss 20 -vframes 1 -i before.mp4 -f image2 after.jpg
ファイルの統合
大量のファイルを結合するときに便利。シェルと組み合わせればリストの動的生成も簡単。
カレントディレクトリ内の拡張子にmp4と付いているファイルは以下で抽出できる。
find $(pwd)|grep .*.mp4 > list.txt
ffmpeg -f concat -i list.txt -c copy output.mp4
ファイルの結合順に上から列挙したファイルlist.txtを作成する
-
-
- list.txt – – –
file /home/user/a.mp4
file /home/user/b.mp4
- list.txt – – –
-
コメントを残す