Привет У меня есть несколько вопросов, касающихся NVENC, сабвуферов DVB и функции наложения.
Мне удалось записать субтитры DVB для входного видео, но я заметил, что это не может быть выполнено полностью на графическом процессоре, потому что я использую функцию Overlay FFMPEG, которая возможна только с программным обеспечением.
Текущий код Масштабирует субтитры до 1920x1080 перед применением наложения. Я заметил, что это использует больше процессора, чем просто наложение субтитров прямо на видео. Проблема в том, что я хочу наложить субтитры в центральном дне . Текущий код центрирует субтитры в центре экрана (немного раздражает)
В конце концов, я бы хотел полный вариант транскодирования hw (угадайте, что это невозможно?) 1011 *
Я бы хотел, чтобы субтитры были не масштабированы по центру (загрузка процессора на 50% меньше)
Мне бы хотелось, чтобы субтитры масштабировались на 50% в центре снизу (загрузка процессора на 30% меньше), это делает субтитры более удобочитаемыми.
Текущий код для субтитров, масштабированный до размера видео (как полностью транскодировать hw?):
-hwaccel_device 4 -hwaccel cuvid -vcodec h264_cuvid -resize 1920x1080 -deint 2 -drop_second_field 1 -i 'http://stream' -filter_complex "[i:0x1389]hwdownload,format=nv12[base];[i:0x13ee]scale=1920:1080[subtitle];[base][subtitle]overlay[v];[v]hwupload_cuda[v]" -map "[v]" -map i:0x1393 -acodec libfdk_aac -b:a 96k -c:v h264_nvenc -gpu 4 -preset llhq -vprofile high -rc:v vbr -qmin:v 26 -qmax:v 32 -b:v 4M -maxrate 4M -bufsize 8M -threads 0 -r 25 -g 100 -f flv 'rtmp://127.0.0.1:8001/input/nvenctest.stream'
Код субтитров не масштабируется, но центрируется. Как изменить центр внизу:
-hwaccel_device 4 -hwaccel cuvid -vcodec h264_cuvid -resize 1920x1080 -deint 2 -drop_second_field 1 -i 'http://stream' -filter_complex "[i:0x1389]hwdownload,format=nv12[base];[base][i:0x13ee]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[v];[v]hwupload_cuda[k]" -map "[k]" -map i:0x1393 -acodec libfdk_aac -b:a 96k -c:v h264_nvenc -gpu 4 -preset llhq -vprofile high -rc:v vbr -qmin:v 26 -qmax:v 32 -b:v 4M -maxrate 4M -bufsize 8M -threads 0 -r 25 -g 100 -f flv 'rtmp://127.0.0.1:8001/input/nvenctest.stream'
Вывод ffprobe:
[mpegts @ 0x3786200] sub2video: using 1920x1080 canvas
[Parsed_showinfo_0 @ 0x3785340] config in time_base: 1/90000, frame_rate: 0/1
[Parsed_showinfo_0 @ 0x3785340] config out time_base: 0/0, frame_rate: 0/0
No information about the input framerate is available. Falling back to a default value of 25fps for output stream #0:0. Use the -r option if you want a different framerate.
Output #0, null, to 'pipe:':
Metadata:
encoder : Lavf58.3.100
Stream #0:0: Video: wrapped_avframe, bgra, 1920x1080, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
Metadata:
encoder : Lavc58.9.100 wrapped_avframe
[Parsed_showinfo_0 @ 0x3785340] n: 0 pts: 0 pts_time:0 pos: -1 fmt:bgra sar:0/1 s:1920x1080 i:P iskey:1 type:? checksum:00000000 plane_checksum:[00000000] mean:[0] stdev:[0.0]
[Parsed_showinfo_0 @ 0x3785340] n: 1 pts: 0 pts_time:0 pos: -1 fmt:bgra sar:0/1 s:1920x1080 i:P iskey:1 type:? checksum:00000000 plane_checksum:[00000000] mean:[0] stdev:[0.0]
[Parsed_showinfo_0 @ 0x3785340] n: 2 pts: 39599 pts_time:0.439989 pos: -1 fmt:bgra sar:0/1 s:1920x1080 i:P iskey:1 type:? checksum:00000000 plane_checksum:[00000000] mean:[0] stdev:[0.0]
[graph 0 input from stream 0:2 @ 0x37c9340] Changing frame properties on the fly is not supported by all filters.
Segmentation fault (core dumped)