cat /dev/something> file.txtに対応するもの(プログラミング方法)は何ですか?

cat /dev/something> file.txtに対応するもの(プログラミング方法)は何ですか?

カメラストリームからビデオをコピーするコマンドを使用していますが、うまくいきますが、cat /dev/video0 > file.mpeg ファイルをより小さな塊に分割したいので、Ctrl + Cを待っています。自動化したいので、バッチスクリプトを作成しました。 X分待ってから操作を停止し、進行状況バーを表示します。それはうまくいきましたが、さらに一歩進みたいと思いました。正確な時刻とファイル名を含むXMLファイルがあり、ファイルを解析するモノラルプログラムがあります。

質問は次のとおりです。このcatコマンドをプログラムでどのように実行しますか?もちろん、システムコマンドを実行することもできます。しかし、アプリケーション全体を同じ言語にしたいと思います。ファイルを開いてバイナリとして書き込み、一度に1000バイトを読み取ることができます。しかし、catは何をしていますか?どういうわけか/どれだけ早く読むことができるか知っていますか?

ベストアンサー1

timeout殺してしまおうcat

catと+とctrlうまく機能するため、c次のコマンドラインでは問題に応じてデータを処理し、再生時間を5秒で記録したいとします。

timeout 5 cat /dev/video0 > file.mpeg

catデータを読み書きする簡単なツールです。データ転送速度や時間間隔を設定できませんcat。外部から制御する必要がありますcat。しかし、他のツールもたくさんあります。

組み込み機能の使用ffmpeg

マルチメディアツールも利用できますffmpeg。急な学習曲線がありますが、使い始めると非常に強力なツールであることがわかります。ドキュメントに詳細な説明があります。man ffmpegしかし、インターネットを介して適切なチュートリアルを検索する方が良いです。

MTSファイルをmpegファイルに変換するために、次のコマンドラインをテストしました。まだデバイスでテストしていませんが、うまくいくと思います。変換を制御するには、コマンドラインでより多くのオプションを使用できます(デフォルトとは異なります)。

ffmpeg -t 5 -i /dev/video0 file.mpeg

-t 55秒間録音するという意味です。

次のコマンドラインは重要な改善になる可能性があります。

ffmpeg -i /dev/video0 -f segment -segment_time 10:0 out%03d.mp4

入力を10分の長さのファイルに分割します。文書を読む必要がありますここ

ffmpegバージョン

  • Lubuntu 18.04.1 LTS を使用する作業 コンピュータにはffmpeg version 3.4.4-0ubuntu0.18.04.1バージョン 3.4.4 があります。これはUbuntuリポジトリからインストールした後に得られるものです。他のLinuxディストリビューションとバージョンには、異なるバージョン(最新または以前)がある可能性があります。

  • 次に接続https://ffmpeg.org)バージョン4.1について説明しますが、このバージョンの一部の機能は以前のバージョンでは使用できない場合があります。このバージョンはより高度なバージョンですが、バグ修正を受けて更新する方が複雑になる可能性があります。

おすすめ記事