web-dev-qa-db-ja.com

avconvでsrt字幕をビデオに書き込むにはどうすればよいですか?

システム:Xubuntu 13.04 x64

Ffmpegでこの機能の使用法を見つけました here

ffmpeg -i video.avi -vf subtitles=subtitle.srt out.avi

しかし、それは機能しません。エラーが発生します

No such filter: 'subtitles'

その上。 ffmpegavconvに置き換えると、同じことが起こります。

そこで、libav source here をダウンロードしてコンパイルしてみました。繰り返しますが、実行するとイライラします

./configure --enable-libass

ソースディレクトリで、今回は

Unknown option "--enable-libass"

これは、avconvがまったくサポートしていない非常に特殊なものなのでしょうか。そして

3
neuront

subtitlesフィルターが欠落している理由

LibavはFFmpegの機能を無視する傾向があるため、avconvとその偽造 "ffmpeg"(14.04で削除)はlibassをサポートしないため、 subtitlesをサポートしません。ビデオフィルター 他の多くのフィルターの中で。


直し方

FFmpegから実際のffmpegを取得するには、いくつかのオプションがあります。


使用法

Hardsubs

これにより、字幕がビデオに「焼き付けられます」が、もちろんビデオを再エンコードする必要があります。

ffmpeg -i video.mkv -vf subtitles=subtitle.srt -codec:a copy output.mkv
  • フィルタは再エンコードが必要です。エンコーディングの提案については、 FFmpeg H.264 Encoding Guide を参照してください。

  • おそらくオーディオを再エンコードしたくないので、この例は ストリームコピー (re-muxes)だけです。

ソフトサブ

ファイルに多重化された字幕ストリームで構成されます。使用する価値のあるプレーヤーであれば、字幕のオン/オフを切り替えたり、存在する可能性のある他の字幕ストリームから選択したりできます。再エンコードは不要です。

ffmpeg -i video.mkv -i subtitle.srt -codec copy -map 0 output.mkv
7
llogan

ffmpegavconvとまったく同じではありません。 avconvを使用した字幕の書き込みについては、 this を参照してください。

より簡単でGUIを使用した別のオプションがあります:Avidemux。以下でインストールします:

Sudo apt-get install avidemux

ビデオファイルを開き、Videoに移動し、ビデオエンコーダー(Copy以外)、FiltersおよびSubtitlesを選択します。 Subtitlerフィルターを選択します。

enter image description here

5
Cornelius