前提・実現したいこと
動画処理の初心者です。
エンコードなしの無劣化ファイルの保持と、エンコード負荷による電気代の節約を実現するため、
動画ファイルの生成とエンコード処理を別の過程として扱いたいです。
具体的には、ffmpegによってスクショの動画のファイルを生成し、
そのファイルをh264エンコードをします。
1.エンコードなしの無劣化ファイルの生成
width=横幅 height=縦幅 position_x=画面左上からの横座標 position_y=画面左上からの縦座標 ffmpeg -f x11grab -show_region 1 -s "$width"x"$height" -r 30 -i :0.0+"$position_x","$position_y" -vcodec copy -acodec copy -t $time test.mp4
2.originファイルに対するエンコード処理
ffmpeg -i test.mp4 -vcodec copy -acodec copy test-out.mp4
発生している問題・エラーメッセージ
上記の2.エンコード処理をすると、以下のエラーがでる。
Decoder (codec none) not found for input stream #0.0
しかし、vcodecをlibx264にすると、正しく再生できる。ただし、cpu使用率が増えるので、動画生成時はエンコード処理をしたくない。
試したこと
自分はまだ動画ファイルの仕組みを理解しきれていませんが、
エラー文のcodec noneより、はじめにエンコーディング?codec?を指定しないと、
動画ファイルは読み込めないのかなと思いました。
そこで、codec判定法として、このサイトより、
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name \ -of default=noprint_wrappers=1:nokey=1 test.mp4
をやると、unknownと表示されます。一方、はじめに -vcodec libx264としたファイルはh264となります。
つまり、はじめにcodecを指定しないと動画ファイルは破損したも同じということのようです。
補足情報(FW/ツールのバージョンなど)
ffmpeg
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/14 12:39 編集
2018/11/14 12:50 編集
2018/11/15 01:23