6

私はOSXを実行していますが、ビデオ変換について何トンも知りません。しかし、私はすべてmp4形式でFirefoxで再生されない200本のビデオを持っています。html5ビデオタグを使用するには、それらをoggに変換する必要があります。

これらのファイルはフォルダ構造に存在するため、一度に1つずつファイルを作成するのは困難です。bashコマンドまたはRubyコマンドですべての子フォルダーを調べ、すべての.mp4を見つけて変換したいと思います。

Googleでこれを行う方法のリファレンスを1つ見つけました:http://athmasagar.wordpress.com/2011/05/12/a-bash-script-to-convert-mp4-files-to-oggogv/

#!/bin/bash
for f in $(ls *mp4 | sed ‘s/\(.*\)\..*/\1/’)
do
ffmpeg -i $f.mp4 -acodec vorbis -vcodec libtheora $f.ogg
done

しかし、これをLinuxからOSXに変換する方法がわかりません。

4

2 に答える 2

8

あなたの質問への直接の答えは次のようになりますが:

#!/bin/bash
MOVIES=~/Movies/
find "$MOVIES" -name '*.mp4' -exec sh -c 'ffmpeg -i "$0" -sameq "${0%%.mp4}.ogg"' {} \;
exit;

VP8またはwebmコーデックを使用すると、はるかに優れた結果が得られ、Firefoxの最新バージョンで実際に好まれているため、より良い結果が得られると思います。それを考えると、これを試してみてください:

#!/bin/bash
MOVIES=~/Movies/
find "$MOVIES" -name '*.mp4' -exec sh -c 'ffmpeg -i "$0" -sameq "${0%%.mp4}.webm"' {} \;
exit;

これらの方法はどちらも、すでにエンコードされた素材を再エンコードしているため、結果のビデオの品質が低下します。私の意見では、webmコーデックでさえ、h.264を使用して適切にエンコードされたMP4ほど良くありません。コーデック。

于 2012-05-28T02:24:24.553 に答える
6

使用したffmpegが正しいと仮定して、これはRubyを使用しています。

Dir.glob("**/*.mp4").each do |filename|
  new_filename = File.join(
    File.dirname(filename),
    "#{File.basename(filename, ".mp4")}.ogg")
  `ffmpeg -i "#{filename}" -acodec vorbis -vcodec libtheora "#{new_filename}"`
end

Dir.globは、"**/*.mp4"拡張子が.mp4のサブディレクトリ内のすべてのファイルと再帰的に一致します。

于 2012-05-26T16:26:42.617 に答える