ffmpeg を使用してビデオの特定の時間から mp4 ファイルをストリーミングする

ffmpeg を使用してビデオの特定の時間から mp4 ファイルをストリーミングする

異なる開始時間からビデオ ファイル (.mp4) をストリーミングしたい。

のためにビデオのtest.mkvようなファイルを分単位でストリーミングしたいのですが、rtmp サーバーにストリーミングすると、ビデオは開始されずにムービーから開始されます。 00:02:30test.mkv00:02:30注記: そんなに長く待ちたくないので、コマンドで Enter キーを押した直後から開始したいのでffmpeg、using などの回答はcronjob役に立ちません。

ffmpeg私が使用しているコマンドは次のとおりです:

ffmpeg -i test.mkv -pix_fmt yuv420p -vsync 1 -threads 0 -vcodec libx264 -r 30 -g 60 -sc_threshold 0 -b:v 512k -bufsize 640k -maxrate 640k -preset veryfast -profile:v baseline -tune film -acodec aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -bsf:v h264_mp4toannexb -f flv rtmp://test.server.com

注記:

コマンドを改善するための提案があればffmpeg、それもありがたいです。

答え1

フラグがあるようです-ssが、どういうわけか、ちょっとしたヒントがあるので、うまく機能します-i。機能させるには、引数の前に配置する必要があります。たとえば、-ss 150ビデオの開始から 150 秒から開始するように追加するだけで簡単です。上記のコマンドは次のようになります。

ffmpeg -ss 150 -i test.mkv -pix_fmt yuv420p -vsync 1 -threads 0 -vcodec libx264 -r 30 -g 60 -sc_threshold 0 -b:v 512k -bufsize 640k -maxrate 640k -preset veryfast -profile:v baseline -tune film -acodec aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -bsf:v h264_mp4toannexb -f flv rtmp://test.server.com

注記:

-ss引数の前に置きます-i

関連情報