2017-09-21 1 views
0

ffmpegを使用してusbウェブカムからストリーミングビデオデータを処理しようとしています。このプロセスでは、生データをhevc形式にエンコードする必要があります。今まで私はできるのです。 しかし、処理したデータを10秒単位でスライスして別のファイルに保存したいとします。これは、手動でプロセスを強制終了/中断するまで繰り返す必要があります。ffmpegセグメントマルチプレクサが再生不能なHEVCビデオ出力を生成する

ffmpeg -i /dev/video1 -f segment -segment_times 10 -c:v hevc cam_1_%02d.mp4 

上記のコードは複数のファイルを作成しますが、最初のファイルのみがvlcを使用して読み込み可能です。他のファイルは壊れて見えます。

そして、私はコマンドを実行している間、私は次のメッセージを見ることができる: -

Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264)) Press [q] to stop, [?] for help Past duration 0.601555 too largeN/A time=00:00:14.63 bitrate=N/A dup=11 drop=0  Past duration 
0.601463 too large Past duration 0.601555 too largeN/A time=00:00:15.16 bitrate=N/A dup=11 drop=0  Past duration 0.601585 too large 
    Last message repeated 1 times Past duration 0.601646 too large Past duration 0.601677 too large Past duration 0.601707 too largeN/A time=00:00:15.66 bitrate=N/A dup=11 drop=0 

私はここで何をしないのですか?

+0

なぜこのタグは 'python'ですか?プログラミング面は何ですか? 'ffmpeg'コマンドラインツールを使用することによる単なる問題であるようです。 –

+0

ああ、私たちは同じことをするためにPythonでffmpyモジュールを使うことができます。もし誰かがそれについて知っていたら;それは役に立つかもしれない。 –

答えて

1

出力オプションを-reset_timestamps 1に追加します。 segment muxer documentationから:各セグメント がゼロに近いタイムスタンプを開始するように

、各セグメントの先頭にタイムスタンプをリセットします。これは、生成されたセグメントの再生 を容易にするためのものです。 マルチプレクサ/コーデックの組み合わせでは動作しない可能性があります。デフォルトでは0に設定されています。

また、-segment_times-segment_timeに変更することをお勧めします。

+0

ありがとうございます!問題を解決したしかし、セグメンテーションには何か問題があります。私は10秒ごとにスライス時間を与えていますが、各ビデオの長さはわずか8秒です。それについてのアイデア? –

+0

@DeepakNellurvalappilおそらくそれを[su]の新しい質問として尋ねる価値があります。私はそこにそれを見るでしょう。実際のffmpegコマンドとそのコマンドからの完全なコンソール出力/ログを必ず表示してください。 – LordNeckbeard

関連する問題