#amazon-s3 #aws-lambda #aws-media-convert
#amazon-s3 #aws-lambda #aws-media-convert
Вопрос:
У меня есть одно видео со временем 1 час.
я хочу разделить видео на разные части по указанному диапазону.
пример:
- от 0 до 10 минут
- от 10 до 40 минут
- от 40 до 60 минут
Я знаю, что это возможно с помощью ffmpeg, но я хочу сделать это с помощью MediaConvert.
вот пример для ffmpeg, но то же самое я хочу сделать с помощью MediaConvert
ffmpeg -i input.mp4 -c copy -f segment -segment_times 0,600,2400 output%d.mp4
Ответ №1:
Вы можете выполнить это, используя обрезку ввода в MediaConvert. Вам нужно будет создать несколько заданий, чтобы получить желаемый диапазон отсечения входных данных и выходных данных.
В настройках задания входные блоки будут выглядеть примерно следующим образом.
Задание 1
"Inputs": [
{
"AudioSelectors": {
"Audio Selector 1": {
"Offset": 0,
"DefaultSelection": "DEFAULT",
"ProgramSelection": 1
}
},
"VideoSelector": {
"ColorSpace": "FOLLOW",
"Rotate": "DEGREE_0",
"AlphaBehavior": "DISCARD"
},
"FilterEnable": "AUTO",
"PsiControl": "USE_PSI",
"FilterStrength": 0,
"DeblockFilter": "DISABLED",
"DenoiseFilter": "DISABLED",
"InputScanType": "AUTO",
"TimecodeSource": "ZEROBASED",
"FileInput": "s3://bucket/media.mp4",
"InputClippings": [
{
"StartTimecode": "00:00:00:00",
"EndTimecode": "00:10:00:00"
}
]
}
]
Задание 2
"Inputs": [
{
"AudioSelectors": {
"Audio Selector 1": {
"Offset": 0,
"DefaultSelection": "DEFAULT",
"ProgramSelection": 1
}
},
"VideoSelector": {
"ColorSpace": "FOLLOW",
"Rotate": "DEGREE_0",
"AlphaBehavior": "DISCARD"
},
"FilterEnable": "AUTO",
"PsiControl": "USE_PSI",
"FilterStrength": 0,
"DeblockFilter": "DISABLED",
"DenoiseFilter": "DISABLED",
"InputScanType": "AUTO",
"TimecodeSource": "ZEROBASED",
"FileInput": "s3://bucket/media.mp4",
"InputClippings": [
{
"StartTimecode": "00:10:00:00",
"EndTimecode": "00:40:00:00"
}
]
}
]
Задание 3
"Inputs": [
{
"AudioSelectors": {
"Audio Selector 1": {
"Offset": 0,
"DefaultSelection": "DEFAULT",
"ProgramSelection": 1
}
},
"VideoSelector": {
"ColorSpace": "FOLLOW",
"Rotate": "DEGREE_0",
"AlphaBehavior": "DISCARD"
},
"FilterEnable": "AUTO",
"PsiControl": "USE_PSI",
"FilterStrength": 0,
"DeblockFilter": "DISABLED",
"DenoiseFilter": "DISABLED",
"InputScanType": "AUTO",
"TimecodeSource": "ZEROBASED",
"FileInput": "s3://bucket/media.mp4",
"InputClippings": [
{
"StartTimecode": "00:40:00:00",
"EndTimecode": "01:00:00:00"
}
]
}
]
Здесь следует отметить, что области отсечения основаны на временном коде входного источника. В моем примере я установил для источника тайм-кода значение с нулевой базой, это означает, что служба запустит тайм-код с 0 и поставит галочку вверх. У вас есть возможность указать начальный таймкод или использовать встроенный таймкод в файле.
Обратите внимание, что таймкод должен быть в синтаксисе SMPTE (ЧАСЫ: МИНУТЫ: СЕКУНДЫ: КАДРЫ) [2]
== Документация ==
[1] https://docs.aws.amazon.com/mediaconvert/latest/ug/assembling-multiple-inputs-and-input-clips.html