Конвертирование WEBM в PNG: преобразуйте видео в статичные изображения онлайн
Семантическая разметка:
1. Python:
import cv2
def webm_to_png(input_file, output_folder):
video_capture = cv2.VideoCapture(input_file)
success, frame = video_capture.read()
count = 0
while success:
output_path = f"{output_folder}/frame_{count}.png"
cv2.imwrite(output_path, frame)
success, frame = video_capture.read()
count += 1
video_capture.release()
# Пример использования
webm_to_png("video.webm", "output_folder")
2. JavaScript:
const fs = require('fs');
const ffmpeg = require('ffmpeg.js/ffmpeg-mp4.js'); // Здесь подключаем ffmpeg.js
function webm_to_png(input_file, output_folder) {
const input_data = fs.readFileSync(input_file);
const video = ffmpeg({
MEMFS: [{ name: input_file, data: input_data }],
arguments: ['-i', input_file, `${output_folder}/frame_%d.png`]
});
video.FS('writeFile', input_file, input_data);
video.run();
const outputFiles = video.FS('readdir', 'output/');
for (let i = 0; i < outputFiles.length; i++) {
fs.writeFileSync(`${output_folder}/frame_${i}.png`, video.FS('readFile', `output/${outputFiles[i]}`));
}
}
// Пример использования
webm_to_png('video.webm', 'output_folder');
3. PHP:
function webm_to_png($input_file, $output_folder) {
$cmd = "ffmpeg -i $input_file $output_folder/frame_%03d.png";
exec($cmd);
$frame_number = 0;
$files = glob($output_folder . '/*.png');
foreach ($files as $file) {
$new_filename = $output_folder . "/frame_" . str_pad($frame_number, 3, "0", STR_PAD_LEFT) . ".png";
rename($file, $new_filename);
$frame_number++;
}
}
// Пример использования
webm_to_png('video.webm', 'output_folder');