の反復の前または後にAWKで文字列を検索するだから私はこのようになりますテキストドキュメント(切り捨て)は、反復配列
[FRAME]
pkt_pts_time=0.000000
pict_type=I
[/FRAME]
[FRAME]
pkt_pts_time=0.250250
pict_type=B
[/FRAME]
[FRAME]
pkt_pts_time=0.500500
pict_type=P
[/FRAME]
[FRAME]
pkt_pts_time=0.750750
pict_type=B
[/FRAME]
[FRAME]
pkt_pts_time=0.959292
pict_type=I
[/FRAME]
を持っているこのテキストは、このコマンドで作成されました:
ffprobe -select_streams v -show_frames -show_entries frame=pkt_pts_time,pict_type,frame_number -v quiet input.mp4
ご覧のとおり、[フレーム]〜[/フレーム]のシーケンスが繰り返されます。これは私がフレームを数え、どのフレームがIフレームであるかを見つける方法です。各シーケンスにおいて、「pict_type =」値が変化する。 AWKを使って反復番号を入力し、pict_type値がIと等しい先行のpkt_pts_time値を出力する方法があるかどうか疑問に思っていました。
たとえば、フレーム番号が3の場合、数字3を入力し、awk式は3番目の[Frame]〜[/ Frame]シーケンスに行き、そこから "pict_type = I"文字列が見つかるまでそこを振り返ります。次に、そのシーケンス反復のpkt_pts_timeが "pkt_pts_time = 0.00000"で出力されることがわかります0.0000
このテキストファイルを生成しましたか? Iフレームデータのみを出力し、処理後にそれをポストする必要がないためです。 – LordNeckbeard
あなたがこれまでに書いたコードを含めると非常に役に立ちます。コードを見ればコードを修正する方法を簡単に理解するのに役立ちます。 – ghoti
@ghoti、ここに私のコードです。 ffprobe -select_streams v -show_frames -show_entries frame = pkt_pts_time、pict_type、frame_number -v quiet input.mp4 – dne202