2017-07-18 24 views
0

私はrtmpストリーミングからのビデオを持っています。ffmpegでトランスコードするときにファイル内のPTSギャップを削除する方法は?

放送が頻繁にオンとオフであるので、

は、アーカイブファイル(これは秒であると仮定する)

以下のよう

をPTSを有します0--10--20--30- -40 120--130--140

不連続が40〜120秒です。

40秒から120秒の間に80秒のギャップがあるため、このファイルの所要時間は60秒でなければなりません。

このファイルをトランスコードすると、最終的な再生時間は80秒の一時停止部分で140秒になりました。

このファイルを「存在しない」80秒間でトランスコードすると、出力ファイルは冗長な80秒間の一時停止なしで60秒になります。

「+ getpts」または「+ igndts」オプションを試しましたが、まったく機能しません。

答えて

1

setptsフィルタを使用します。

ffmpeg -i in.flv -vf setpts=N/FRAME_RATE/TB out.mp4 

オーディオがある場合は、-af asetpts=N/SR/TBを追加してください。

+0

オーディオがある場合は、オーディオとビデオの間で同期の問題があるはずです。オーディオとビデオの間の同期を保存するための他のオプションはありますか? – jsBaek

+0

オーディオPTSに対応する不連続がない場合は、オーディオを手動でトリムする必要があります。ビデオのフリーズ中に無音がある場合、[silenceremove](https://ffmpeg.org/ffmpeg-filters.html#silenceremove)フィルタが機能することがあります。 – Mulvya

+0

ありがとうございました。私は、部品をトリミングするためのより良い方法があるかどうかを判断するつもりです – jsBaek

関連する問題