輸入com.google.common.collect.ImmutableList; 輸入net.bramp.ffmpeg.builder.FFmpegBuilder; 輸入はjava.util.ArrayList; 輸入はjava.util.List; / ** * *适用于HLS协议的构造器、<a href=" https://ffmpeg.org/ffmpeg-formats.html #hls-1"> HLS协议相关参数する</a> * @author dqk * / パブリック クラス HLSFFmpegBuilderは延びFFmpegBuilder { / ** * *セットプレイリストエントリの最大数。0に設定した場合は、リスト・ファイルには、すべてのセグメントが含まれます。デフォルト値は5です。 * / プライベート整数hlsListSize = 5 ; / ** * *秒でターゲットセグメントの長さを設定します。デフォルト値は、この時間が経過した後に2セグメントは、次のキーフレームにカットされますです。 * / プライベート整数hlsTime = 2 ; / ** * *これは古いオプションです、あなたが代わりにhls_list_sizeとhls_flags delete_segmentsを使用することができ、 * *このオプションは、多くのセグメントファイルとディスクを埋めるために避けるために有用であり、ラップにディスクに書き込まれたセグメントファイルの最大数を制限します。 * / @Deprecated プライベート整数hlsWrap = 0 ; 公共HLSFFmpegBuilder setHlsListSize(整数hlsListSize){ この .hlsListSize =hlsListSize; 返す これを。 } 公共HLSFFmpegBuilder setHlsTime(整数hlsTime){ この .hlsTime = hlsTime。 返す これを。 } 公共HLSFFmpegBuilder setHlsWrap(整数hlsWrap){ この .hlsWrap = hlsWrap。 返す これを。 } パブリック整数getHlsListSize(){ 戻りhlsListSizeと、 } パブリック整数getHlsTime(){ 戻りhlsTime。 } パブリック整数getHlsWrap(){ 戻りhlsWrap。 } @Override パブリックリストの<string> ビルド(){ リストの<string>引数= スーパー.build()。 一覧 <文字列> TEMP = 新しい ArrayListを<> (); setFormat( "HLS" )。 もし(この!.hlsWrap = ヌル){ temp.add( "-hls_wrap" ); temp.add(hlsWrap.toString())。 } であれば(この .hlsTime!= NULL ){ temp.add("-hls_time" ); temp.add(hlsTime.toString())。 } であれば(この .hlsListSize!= NULL ){ temp.add( "-hls_list_size" )。 temp.add(hlsListSize.toString())。 } のために(文字列引数:TEMP){ (引数)をargs.add。 } リストの<string> newargs = ImmutableList.copyOf(引数)。 リターンnewargs。 } }
GkFFmpegBuilder.java
インポートcom.google.common.collect.ImmutableList; インポートnet.bramp.ffmpeg.builder.FFmpegBuilder; インポートjava.util.ArrayListのの、 輸入はjava.util.List; / ** *パラメータの拡張を容易にするためには、APIではありません * / パブリック クラス GkFFmpegBuilderは拡張FFmpegBuilder { プライベート;ロングitsoffset @Override 公共一覧<文字列> ビルド(){ // ない変数グループ(原因不明)である配列 リスト<文字列>引数= スーパー.build(); リスト <文字列> TEMPを= 新しい新規のArrayList <> (); IF(この!.itsoffset = ヌル){ temp.add( "-itsoffset" ); temp.add(この.itsoffset.toString()); } のための(文字列引数:引数){ temp.add(引数)。 } リストの<string> newargs = ImmutableList.copyOf(TEMP)。 リターンnewargs。 } パブリックロングgetItsoffset(){ 戻りitsoffsetと、 } 公共GkFFmpegBuilder setItsoffset(ロングitsoffset){ この .itsoffset = itsoffset。 リターン この; } }