カメラストリームからビデオをコピーするコマンドを使用していますが、うまくいきますが、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 5
5秒間録音するという意味です。
次のコマンドラインは重要な改善になる可能性があります。
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について説明しますが、このバージョンの一部の機能は以前のバージョンでは使用できない場合があります。このバージョンはより高度なバージョンですが、バグ修正を受けて更新する方が複雑になる可能性があります。