web-dev-qa-db-ja.com

ビデオチャンクを生成するときにffmpeg出力を暗号化する方法は?

opensslビデオストリームをffmpeg暗号化できます

 ffmpeg -i  video1.mp4-video1.mp4.mp4 -f ogg -  | 
 openssl enc -des3 > outptu.ogg.des3

コマンドで指定されたチャンク(たとえば、指定された期間)を生成するときにffmpeg出力を暗号化するためにどの戦略を使用しますか:

ffmpeg -f video4linux2 -s vga -i /dev/video0 -f segment -segment_time 1\
-strftime 1 '%Y-%m-%d_%H-%M-%S.ts'

%Y-%m-%d_%H-%M-%S.ts.des3の代わりに%Y-%m-%d_%H-%M-%S.tsが必要です

名前付きパイプを使用したいのですが、ffmpegによって生成された各チャンクのファイルヘッダーとフッターを検出する必要があることを意味します。

最も簡単な解決策は、新しく検出されたファイルを自動的に暗号化するバックグラウンドスクリプトを実行することだと思います。

4
user123456

ジョブに間違ったツールを使用しています。出力をOpenSSLにパイプする代わりに、暗号化されたファイルシステムにあるファイルに出力を書き込みます。暗号化されたファイルシステムはランダムアクセス用に設計されており、openssl encなどのファイル暗号化ツールはめったにありません。

さらに、openssl encは悪い暗号であり、決して使用しないでください。 DES3を使用していますが、一部の標準ではまだ法的に許容されていますが、AESを優先して非推奨になっています。そして最悪の点は、opensslがパスワードからキーを取得する方法が途方もなく悪いことです。適切な キーストレッチ機能 を使用していないため、パスワードをブルートフォースするのは簡単です。 。暗号化にopensslコマンドラインツールを使用することは正しく行うのが難しく、仕事に最適なツールではありません。 opensslが存在することを忘れて、ジョブに適切なツールを使用してください。フルディスク暗号化の場合はLUKS、ホームディレクトリ暗号化の場合はEcryptfs、ファイルごとの暗号化の場合はgpgまたは7z。 EncFS でさえ、暗号化されたディレクトリをマウントすることは欠陥がありますが、opensslよりもはるかに壊れにくいです。