Azzera filtri
Azzera filtri

フォルダ内の「.av​i」ファイルを一度に​まとめて「.mp4」​ファイルに変更するこ​とはできますか?

68 visualizzazioni (ultimi 30 giorni)
non
non il 22 Dic 2023
Modificato: Atsushi Ueno il 25 Dic 2023
「test01-1-1.avi」、「test01-1-2.avi」、「test01-1-3.avi」....「test03-3-3.avi」ファイルを参照して、同じ名前の「ファイル名.mp4」を作りたいです。
変換前の.aviファイルは1つのフォルダにまとめて入っています。
現在は、「現在のフォルダ」を指定して、以下のコードを実行することによって変換しています。指定するファイル名を変更しながら「.avi」→「.mp4」に変換することは可能でしょうか。もしくは、もしファイル名を指定せずに、フォルダ内の全ファイルに同じ処理をすることが可能でしたら、方法を教えていただけないでしょうか。
よろしくお願いいたします。
%% .avi→.mp4動画への変換
r_filename = 'test01-1-1.avi';
reader = VideoReader(r_filename); % AVI読み込み
w_filename = 'test01-1-1.mp4';
writer = VideoWriter(w_filename, 'MPEG-4'); % MP4書き出し
writer.Quality = 25; % 0から100の数値を指定
writer.FrameRate = reader.FrameRate;
open(writer)
while hasFrame(reader)% Convert AVI frame to MP4
img = readFrame(reader);
writeVideo(writer, img);
end
close(writer);

Risposta accettata

Atsushi Ueno
Atsushi Ueno il 23 Dic 2023
Modificato: Atsushi Ueno il 25 Dic 2023
ファイルデータストア fileDatastore を使う方法です。
filepath = uigetdir(pwd); % AVIファイルを含むフォルダを選択
fds = fileDatastore(filepath,'ReadFcn',@myread,'FileExtensions','.avi');
conveted_files = readall(fds);
%% .avi→.mp4動画への変換
function out = myread(r_filename) % <<<<<<< 【追記】変換処理を関数にする
% r_filename = 'test01-1-1.avi'; % <<<<<<< 【削除】
reader = VideoReader(r_filename); % AVI読み込み
w_filename = strrep(r_filename,'.avi','.mp4'); % <<<【変更】拡張子を置換
writer = VideoWriter(w_filename, 'MPEG-4'); % MP4書き出し
writer.Quality = 25; % 0から100の数値を指定
writer.FrameRate = reader.FrameRate;
open(writer)
while hasFrame(reader)% Convert AVI frame to MP4
img = readFrame(reader);
writeVideo(writer, img);
end
close(writer);
out = w_filename; % <<<<<<< 【追記】変換処理を関数にする
end % <<<<<<< 【追記】変換処理を関数にする
  1 Commento
non
non il 25 Dic 2023
Atsushi Ueno 様
的確なご回答をいただき、誠にありがとうございます。
教わったコードを用いて、フォルダ内の全「.avi」ファイルを自動で「.mp4」ファイルに変換できました。
また、「uigetdir」関数もこの機会に学べ、その便利さに今後も使っていきたいと思います。
この度はありがとうございました。

Accedi per commentare.

Più risposte (1)

Dyuman Joshi
Dyuman Joshi il 22 Dic 2023
It would be better to use video processing tools like VLC for this instead of MATLAB.
  1 Commento
non
non il 25 Dic 2023
Dear Dyuman Joshi
Thank you for your valuable advice. I just checked the website you sent me.
Actuially, I have never been familiar with video processing tools like VLC. I will now try and learn to use it.
Sincerely
Non

Accedi per commentare.

Categorie

Scopri di più su データのインポートと解析 in Help Center e File Exchange

Prodotti


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!