как вывести только один видеопоток на выход HLS - PullRequest
0 голосов
/ 20 октября 2018

Я успешно вывел 3 выхода HLS, используя -map 360, 720 и 1080p.Мой исходный файл 540p.После генерации я использую ffprobe на вновь созданных 360.ts, 720.ts и 1080.ts и замечаю, что есть второй видеоканал.Этот канал является входным видео.Как мне FFmpeg не выводить исходное видео как часть вывода?

это ffprobe на 360.ts

Stream # 0: 0 [0x100]: Video: h264 (Main) ([27] [0] [0] [0] / 0x001B), yuv420p, 640x360 [SAR 1: 1 DAR 16: 9], 29,97 кадров в секунду, 29,97 тб, 90 тыс. Тбит, 59,94 тбк Поток # 0: 10x101: аудио: aac ([15] [0] [0] [0] / 0x000F), 48000 Гц, стерео, fltp, 100 кбит / с Поток # 0: 2 [0x102]: видео: h264 (Main) ([27] [0] [0] [0] / 0x001B), yuv420p, 960x540 [SAR 1: 1 DAR 16: 9], 29,97 кадров в секунду, 29,97 тбр, 90 тыс. Тбн, 59,94 тбк

Это команда FFmpeg

% ffmpeg% -loglevel fatal -threads% threads% -hide_banner -y -i% input% -i% overlayImg% ^ -filter_complex "[1] colorchannelmixer = aa =% thumbopacity%, scale = iw *% thumbscale%: - 1 [WM]; [0: v] [WM] наложения = (main_w-overlay_w) -36: (main_h-overlay_h) -21, сплит = 4 [A] [B] [с] [d];[а] шкала = ш = 640: Н = 360: force_original_aspect_ratio = уменьшение [а]; [Ь] масштаб = W = 1280: H = 720: force_original_aspect_ratio = уменьшение [Ь]; [с] шкала = ш = 1920: ч= 1080: force_original_aspect_ratio = уменьшение [с]; [d] SCALe = w = 1280: h = 720: force_original_aspect_ratio = уменьшить [d] "^ -map" [a] "-map 0 -c: aac -ar 48000 -c: v h264 -profile: v main -movflags + faststart-tune film -crf% crf% -preset% preset% -sc_threshold 0 -g 72 -keyint_min 72 -hls_time 4 -hls_playlist_type vod -b: v 800k -maxrate 856k -bufsize 1200k -b: выходной файл 96k -hls_flags single_file ^%% \ 360p.m3u8 ^ -map "[b]" -map 0 -c: aac -ar 48000 -c: v h264 -profile: v main -movflags + faststart -tune film -crf% crf% -preset% preset% -sc_threshold 0 -g 72 -keyint_min 72 -hls_time 4 -hls_playlist_type vod -b: v 2800k -maxrate 2996k -bufsize 4200k -b: файл 128k -hls_flags single_file ^% output% \ 720p.m3u8 ^ -map "[c]"-map 0 -c: aac -ar 48000 -c: v h264 -profile: v main -movflags + fasttstart -tune film -crf% crf% -preset% preset% -sc_threshold 0 -g 72 -keyint_min 72 -hls_time4 -hls_playlist_type vod -b: v 5000k -maxrate 5350k -bufsize 7500k -b: файл 192k -hls_flags single_file ^% output% \ 1080p.m3u8 ^ -map "[d]" -карта 0 -c: aac -ar 48000-c: v h264 -profile: v main -preset% preустановить% ^% output% \ 720.mp4 ^ -map 0: v -y -ss 0.5 -vframes 1 -s% thumbsize% -ss 30 ^% outputthumb%

спасибо.

1 Ответ

0 голосов
/ 20 октября 2018

1) -map 0 будет включать все оригинальные потоки, включая видео.Измените на -map 0:a

2) Вам не нужно масштабировать до 720p дважды.масштабировать один раз и разделить.

3) b:v и crf являются исключительными в libx264 (кодировщик h264).Выберите один (желательно crf)

Использование

%ffmpeg% -loglevel fatal -threads %threads% -hide_banner -y -i %input% -i %overlayImg%^ -filter_complex "[1]colorchannelmixer=aa=%thumbopacity%,scale=iw*%thumbscale%:-1[wm];[0:v][wm]overlay=(main_w-overlay_w)-36:(main_h-overlay_h)-21,split=4[a][b][c][d];[a]scale=w=640:h=360:force_original_aspect_ratio=decrease[a];[b]scale=w=1280:h=720:force_original_aspect_ratio=decrease,split=2[b][d];[c]scale=w=1920:h=1080:force_original_aspect_ratio=decrease[c]"^ -map "[a]" -map 0:a -c:a aac -ar 48000 -c:v h264 -profile:v main -movflags +faststart -tune film -crf %crf% -preset %preset% -sc_threshold 0 -g 72 -keyint_min 72 -hls_time 4 -hls_playlist_type vod -b:v 800k -maxrate 856k -bufsize 1200k -b:a 96k -hls_flags single_file^ %output%\360p.m3u8^ -map "[b]" -map 0:a -c:a aac -ar 48000 -c:v h264 -profile:v main -movflags +faststart -tune film -crf %crf% -preset %preset% -sc_threshold 0 -g 72 -keyint_min 72 -hls_time 4 -hls_playlist_type vod -b:v 2800k -maxrate 2996k -bufsize 4200k -b:a 128k -hls_flags single_file^ %output%\720p.m3u8^ -map "[c]" -map 0:a -c:a aac -ar 48000 -c:v h264 -profile:v main -movflags +faststart -tune film -crf %crf% -preset %preset% -sc_threshold 0 -g 72 -keyint_min 72 -hls_time 4 -hls_playlist_type vod -b:v 5000k -maxrate 5350k -bufsize 7500k -b:a 192k -hls_flags single_file^ %output%\1080p.m3u8^ -map "[d]" -map 0:a -c:a aac -ar 48000 -c:v h264 -profile:v main -preset %preset%^ %output%\720.mp4^ -map 0:v -y -ss 0.5 -vframes 1 -s %thumbsize% -ss 30^ %outputthumb%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...