首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >刻录字幕不同分辨率

刻录字幕不同分辨率
EN

Stack Overflow用户
提问于 2018-05-01 04:28:47
回答 1查看 440关注 0票数 0

我正在尝试创建一个具有三种不同分辨率(SD、HD和FullHD)的高质量配置文件的直播流。直播流有字幕,出于兼容性的原因,我必须烧录它们。

我知道如何在一个配置文件中做到这一点,但在很多情况下却一无所知。

代码语言:javascript
运行
复制
ffmpeg -nostdin -loglevel error -hwaccel cuvid -deint 2 -drop_second_field 1 -surfaces 15 -c:v h264_cuvid -resize 1280x720 -y -i udp://xxx.xxx.xxx.xxx:xxxxx?pkt_size=1316\&buffer_size=409600\&fifo_size=1000000\&overrun_nonfatal=1 -filter_complex [i:0x2c6]hwdownload,format=nv12[base];[i:0x993]setpts=(2.5)/TB+PTS[subs];[subs]scale=1280:720[subtitle];[base][subtitle]overlay[v];[v]hwupload_cuda[v] -map [v] -c:v hevc_nvenc -preset llhq -rc vbr_hq -cq 23 -qp 23 -tier high -profile:v main10 -level 4.0 -b:v 2000k -maxrate 2400k -bufsize 1000k -map i:0x2bd -c:a libfdk_aac -ac 2 -b:a 64k -map i:0x2be -c:a libfdk_aac -ac 2 -b:a 64k -metadata:s:a:0 language=eng -metadata:s:a:1 language=spa -f mpegts -mpegts_flags resend_headers+pat_pmt_at_frames -mpegts_copyts 1 -pcr_period 40 udp://yyy.yyy.yyy.yyy:yyyy?ttl=31\?pkt_size=1316\&buffer_size=409600\&fifo_size=1000000\&overrun_nonfatal=1

显然,Iffmpeg不允许在filter_complex中使用-vf过滤器。

我使用的是ffmpeg 3.4,cuda 8。

EN

回答 1

Stack Overflow用户

发布于 2018-05-01 14:40:05

使用

代码语言:javascript
运行
复制
ffmpeg -nostdin -loglevel error -hwaccel cuvid -deint 2 -drop_second_field 1 -surfaces 15
      -c:v h264_cuvid -y -i udp://xxx.xxx.xxx.xxx:xxxxx?pkt_size=1316\&buffer_size=409600\&fifo_size=1000000\&overrun_nonfatal=1
      -filter_complex "[i:0x2c6]hwdownload,format=nv12,split=3[fhd][hd][sd];
                       [i:0x993]setpts=(2.5)/TB+PTS,split=3[subfhd][subhd][subsd];
                       [fhd]scale=1920:1080[fhd];
                       [hd]scale=1280:720[hd];
                       [sd]scale=960:540[sd];
                       [subfhd]scale=1920:1080[subfhd];
                       [subhd]scale=1280:720[subhd];
                       [subsd]scale=960:540[subsd];
                       [fhd][subfhd]overlay,hwupload_cuda[v-fhd];
                       [hd][subhd]overlay,hwupload_cuda[v-hd];                           
                       [sd][subsd]overlay,hwupload_cuda[v-sd]"
      -map [v-fhd] -map [v-hd] -map [v-sd] -c:v hevc_nvenc -preset llhq -rc vbr_hq -cq 23 -qp 23 -tier high
      -profile:v main10 -level 4.0 -b:v 2000k -maxrate 2400k -bufsize 1000k 
      -map i:0x2bd -map i:0x2be -c:a libfdk_aac -ac 2 -b:a 64k 
      -metadata:s:a:0 language=eng -metadata:s:a:1 language=spa
      -f mpegts -mpegts_flags resend_headers+pat_pmt_at_frames -mpegts_copyts 1
      -pcr_period 40 udp://yyy.yyy.yyy.yyy:yyyy?ttl=31\?pkt_size=1316\&buffer_size=409600\&fifo_size=1000000\&overrun_nonfatal=1

您必须根据需要调整视频比特率和缓冲区大小,但这是基本的命令模板。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50107744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档