H264でエンコードされていないファイルのリスト

H264でエンコードされていないファイルのリスト

H264でエンコードされていない大規模メディアコレクションのファイルを変換したいです。これには、変換する必要があるすべてのファイルを一覧表示するツールが必要です。確認すべき書類がたくさんあります。ファイルは /media/tv Shows/show name/season 01/filename.extension 形式で保存されるため、検索には再帰が必要です。

ベストアンサー1

これまで私が考えたことは次のとおりです。これは、実行する必要がある作業のおおよその近似です。

まず、すべてのビデオファイルを検索し、読みやすいファイルとして出力します。この部分をスキップして結果を次のステップに渡すこともできます。

find path/to/videos/directory -name \*.mp4 >> /tmp/videoList.txt

.mp4その後、メディアディレクトリのすべてのサブフォルダにあるすべてのファイルを見つけて1つのファイルに配置します。

次に、画像に表示されるツールを使用できます。この例各ビデオファイルで使用されるエンコーディングを検出します。この場合、私たちはh264を探しています。

while read p; do
mediainfo $p | grep -v h264 | grep .mp4 | \
  cut -f2 -d: >> /tmp/h264List.txt
done </tmp/videoList.txt

この例では、h264を使用してエンコードされたすべてのファイルを含むファイルを作成します/tmp/h264List.txt。ここでは、h264以外のすべてのビデオファイルを比較して見つけることができます。

sort /tmp/videoFiles.txt /tmp/h264List.txt | uniq -u >> /tmp/nonh264List.txt

この時点で、検索したディレクトリにh264以外のすべてのビデオファイルを含むファイルが必要です。全体的に、次のように見えます。

おおよその例なので参考にしてください!

#!/bin/bash

find /home/user/videos/tvshows -name \*.mp4 >> /tmp/videoList.txt

while read p; do
  mediainfo $p | grep -v h264 | grep .mp4 | \
  cut -f2 -d: >> /tmp/h264List.txt
done </tmp/videoList.txt

sort /tmp/videoList.txt /tmp/h264List.txt | uniq -u >> /tmp/nonh264List.txt

#Optional Cleanup, only if necessary
mv /tmp/nonh264List.txt /home/user/needToEncode.txt
rm /tmp/*.txt

次に、ここでファイルに対して同様のループを実行して、目的のneedToEncode.txtエンコーディングffmpegを実行できます。メディアが保存されるパスだけでなく、ファイル拡張子とエンコードも必要に応じて変更する必要があります。

リンクを追加します文書についてffmpeg~のためmediainfo。図に示すffmpegツールを使用することもできます。ffprobeこここれを完了するには

何かを試す前に、私が提供するすべてのリンクを必ず読んでください。このスクリプトは最適ではないかもしれませんし、期待どおりに正確に動作するかもしれませんが、このスクリプトを使ってすべてのビデオファイルを見つけ、並べ替え、出力をファイルに保存することができました。

おすすめ記事