HMSMPEG
hmsmpeg.exe
http://www.ffmpeg.org/
HmsMPEG
Hmsmpeg.exe
http://www.ffmpeg.org/
hmsMPEG
hmsmpeg.exe
http://www.ffmpeg.org/
HMSMPEG
PascalScript
Транскодирование с перекодированием видео
3
video/vnd.dlna.mpeg-tts
0
Var
iCodecID: Integer;
sParams: String;
bh264_mp4toannexb: Boolean;
Begin
// Если нет информации о размере кадра - запускаем получение свойств видео
if mpHeight=0 then HmsRetrieveProperties;
sParams := '-f mpegts'; // Формат выходного файла
// Получаем идентификатор видео-кодека
iCodecID := HmsGetStreamCodecID('V', 0);
// Если идентификатора нет, то определяем по имени, не h264 ли это?
if (iCodecID = CODEC_ID_NONE) and SameText(mpVideoCodec, 'h264') then
iCodecID := CODEC_ID_H264;
// Проверяем, видео кодек h264?
if (iCodecID = CODEC_ID_H264) then Begin
sParams := sParams + ' -vcodec copy'; // Если кодек h264 - копируем
// Проверка на нужность h264_mp4toannexb
if VarToStr(mpCodecNalLengthSize) <> '' then
bh264_mp4toannexb := VarToStr(mpCodecNalLengthSize) <> '0'
else
bh264_mp4toannexb := not MatchText(mpFileType, ['mpegts', 'wtv', 'hls', 'applehttp'], True);
if bh264_mp4toannexb then
sParams := sParams + ' -bsf:v h264_mp4toannexb'
End else
sParams := sParams + ' -vcodec nvenc -pix_fmt yuv420p -threads 4'; // Если это другой - кодируем в h264 (nvenc)
// Получаем идентификатор аудио-кодека
if mpAudioStreamNo <> -1 then
iCodecID := HmsGetStreamCodecID('A', mpAudioStreamNo)
else
iCodecID := CODEC_ID_NONE;
// Проверяем, если аудио-кодек AC3 или AAC, то копируем, если нет - кодируем
if (iCodecID = CODEC_ID_AC3) or (iCodecID = CODEC_ID_AAC) then
sParams := sParams + ' -acodec copy'
else
sParams := sParams + ' -acodec ac3 -ab 448000 -ar 48000';
TranscodingParams := HmsTranscodingInputParams + ' ' + sParams + ' ' + HmsTranscodingMapParams(mpAudioStreamNo);
if Pos('DVD', cfgTranscodingFileFormat) > 0 then
OutputFileName := ChangeFileExt(OutputFileName, '.m2ts');
End.
PascalScript
M2TS Remux (NVENC)
-1
46
035bf7b3-0f72-4e8f-b028-3ff74a46822d