2016-05-14 7 views
0

私はffmpegを使用してシーンの変更のためにビデオファイルをスキャンし、結果をテキストファイルに保存しています。私が使用しているコードは動作しますが、結果を単純化し、シーンの変更が発生するフレーム番号と、このコードが生成するすべてのデータを出力するだけです。助言がありますか?ffmpegでフレーム番号を保存する方法は?

ffprobe -show_frames -of compact=p=0 -f lavfi "movie=input.mov,select=gt(scene\,.02)" > results.txt 
すべてこの

出力:

media_type=video stream_index=0 key_frame=1 pkt_pts=31031 pkt_pts_time=1.292958 pkt_dts=31031 pkt_dts_time=1.292958 best_effort_timestamp=31031 best_effort_timestamp_time=1.292958 pkt_duration=N/A pkt_duration_time=N/A pkt_pos=82320 pkt_size=629760 width=640 height=328 pix_fmt=rgb24 sample_aspect_ratio=1:1 pict_type=I coded_picture_number=0 display_picture_number=0 interlaced_frame=0 top_field_first=0 repeat_pict=0 tag:lavfi.scene_score=0.025551 

答えて

1

シーンチェンジ基準を満たすだけのフレームのインデックス番号を取得するには、ログファイルは、単にフレームインデックス番号が含まれています

ffprobe -select_streams v -show_entries frame=pkt_pts -of compact=p=0:nk=1 \ 
     -f lavfi "movie=abc.mov,setpts=N+1,select=gt(scene\,.02)" > log.txt 
を使用します、1行に1つ

135 
136 
137 
141 
143 
145 

setptsは、このために1

+0

おかげからナンバリングを開始します。なぜそれが私が期待しているより多くのシーンを与えるのか?私の元のコードは6シーンを検出します。あなたは私に297フレームのリストを与えます。 ? – JulianJ

+0

シーンチェンジ値をチェックします - '.02'または '0.2' – Mulvya

+0

元のコードに従って動作しています。まことにありがとうございます。 – JulianJ

関連する問題