4k视频许多人听过,但是8k可能就不太有人接触了,尤其是纵横都是8k分辨率的视频。

这种视频播放器一般是播不了的,如我经常用的MPC-HC播放器(后来得知Windows10自带的“电影和电视”应用可以,而且还流畅,太强大了)。

所以我就用ffplay播放,命令如下:

ffplay.exe -x 960 -y 960 -ss 30 -vcodec hevc_cuvid new.mp4

x指定宽度,y指定高度,ss指定开始时间(秒),重点是vcodec这个参数,这个指定hevc_cuvid解码器,则可以使用GPU加速。我当前不指定的话,如:

ffplay.exe -x 960 -y 960 -ss 30 new.mp4

可以播放,但是仅能播放三秒,然后画面卡住不动,仅有音频在卡顿中继续播放。

通过指定hevc_cuvid,在GPU加速下能播放视频,虽然也略有卡顿。纵横8k分辨率的视频,h265或者是hevc,还是太吃硬件,e5-1650 v4都不能软解,1080TI硬解,使用ffplay,在播放窗口仅有960*960的时候还是略有卡顿。

以上是ffplay对hevc视频硬件加速的记录,如果有非一般的视频,一般播放器无法播放,可以用ffplay验证下视频。

下面是一些别的命令,如去掉音频:

ffmpeg.exe -i 7680_7680.mp4 -map 0:0 -c:v copy new.mp4

map指定仅保留第一条媒体,也就是视频,这样音频就去掉了。

另一例:

ffmpeg -i T.mkv -map 0:0 -map 0:1 -map 0:5 -c:v copy -c:a copy -c:s copy -disposition:s:0 default 02.mkv

这样就可以去除不要的音轨和字幕,保留想要的同时设置该字幕为默认字幕。

另一例:

 ffmpeg.exe -i .\D.mkv -i ..\D\D.srt -map 0:0 -map 0:1 -map 1 -c:v copy -c:a aac -c:s copy -disposition:s:0 default 03.mkv

这里读入原mkv,加入srt字幕,将原来的视频拷贝,音频转aac节省空间,将字幕设置默认。注意-map 1可以加入字幕,否则没有这个参数虽然-i了字幕srt文件,ffmpeg也不会将其合并到视频中。

之前不知道如何指定ffplay的解码器,用下面的命令查看可用的解码器:

ffplay.exe -decoders

得到:

所以我hevc编码的视频选择了hevc_cuvid解码器,这样就能用显卡加速了。原来ffmpeg处理用的hevc_nvenc属于编码器,所以播放命令中不要混淆。

补充:

ffmpeg截取视频,音频视频不重新编码,-ss指定开始时间,-to指定结尾时间,或者不用-to而是用-t指定持续时间:

ffmpeg -i Croatian\ Rhapsody\(LIVE\)\ -\ Maksim\ Mrvica.mkv -c:a copy -c:v copy -ss 00:00:00 -to 00:03:35 test.mkv

没有问题,但是播放的时候发现前面三秒是黑的。Google以下得知ffmpeg切视频时需要关键帧,可能导致差不多十秒左右的视频帧丢失。因此,需要重新编码以解决视频帧丢失问题:

ffmpeg -i Croatian\ Rhapsody\(LIVE\)\ -\ Maksim\ Mrvica.mkv -c:a copy -c:v libx264 -ss 00:00:00 -to 00:03:35 test.mkv

这样就好了。

补充一条抽取视频中的图片序列帧的命令:

ffmpeg -i .\FOV.mp4 image-%5d.jpeg

其他参数不多提,这样可以获取视频中的所有图片帧。

将wav转换为MP3:

ffmpeg -i 爱就一个字.wav -f mp3 -acodec libmp3lame 爱就一个字.mp3

最近研究了如何在网页中点播视频的问题,没有网页浏览器可以直接点播各种格式的音视频,一些插件如video.js也不能应对这种需求。调查和总结了许多,还是使用标准的h264视频编码,加上aac音频编码,封装成mp4格式的视频,才能被浏览器直接播放。这是最合适的,也是目前的html5标准所支持的,电脑上,手机上,不同浏览器都支持。ac3编码的音频是有版权限制的,一些浏览器可能支持播放,但是chrome是不支持的。所以还是选aac来对音频编码最合适,且mp4对字幕支持的较少,可以用mov_text格式编码字幕,用ffmpeg压到mp4中,但是浏览器点播的时候是无法播放内置字幕的。html5的字幕播放一般是外挂一个节点,放一个文本格式的vtt字幕,即webvtt。这种方式还是有些麻烦的,因为我原来的字幕都已经压到mkv文件中了,所以我的转码方案还是选择了硬字幕,以后也不用担心字幕格式不被播放器支持的问题。下面是我将自己的视频转码的命令:

ffmpeg.exe -i .\01.mkv -c:a aac -c:v h264_nvenc -vf subtitles=01.mkv -profile:v high -level 5.1 -preset hq -b:v 4096k -bufsize 8192k -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc-lookahead 20 -vsync 0 -b:a 320k 01.mp4

-c:a aac 指定音频编码为aac,-c:v h264_nvenc 指定使用h264视频编码,且是nvidia硬件加速的编码方式,-vf subtitles=01.mkv 指定字幕来源于原来的mkv文件,将字幕硬编码到视频中。-profile:v high 指定用高质量的视频编码标准,-level 5.1 指定等级为5.1,-preset hq 指定预设编码标准为高质量(high quality),-b:v 指定视频码率4096kb/s,-bufsize 设置为码率的两倍,即8192k。-bf 等指定b帧,-b:a 指定音频码率,可参考原视频音视频码率设置自己压制的音视频码率,保持大小差不多即可,经验证得到的音视频质量和原来基本一样。最后01.mp4就是输出的文件了,且原来5.1声道的音频,重新编码后还是5.1,只需要指定下码率即可。

还遇到一个问题,原来的视频有一个是10位的,英伟达的h264编码器不支持10位,所以要指定yuv420p的格式,如下:

ffmpeg.exe -i .\01.mkv -c:a aac -c:v h264_nvenc -vf subtitles=01.mkv,format=yuv420p -profile:v high -level 5.1 -preset hq -b:v 2048k -bufsize 4096k -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc-lookahead 20 -vsync 0 -b:a 320k 01.mp4

这里基本和上面一样,就是 -vf 这里多加了一个 format=yuv420p 。且这个音视频质量较低,这里码率也调整了。

再放一个高级点的命令,如下:

ffmpeg.exe -i 10.mkv -c:v h264_nvenc -filter_complex "[0:v]subtitles=10.mkv:si=3[v]" -map "[v]" -map 0:a:0 -profile:v high -level 5.1 -preset hq -b:v 2048k -bufsize 4096k -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc-lookahead 20 -vsync 0 -c:a aac -b:a 128k 10.mp4 -y

这条默认使用了srt字幕进行硬字幕压制,选取第四个字幕。如果字幕是基于图像的,而不是基于文本的,如dvd_subtitle,则需要使用以下命令:

ffmpeg.exe -i 22.mkv -c:a copy -c:v h264_nvenc -filter_complex "[0:v][0:s:1]overlay" -profile:v high -level 5.1 -preset hq -b:v 1024k -bufsize 2048k -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc-lookahead 20 -vsync 0 22.mp4 -y

使用了 -filter_complex ,0:v 指定第一条视频,0:s:1指定第二条字幕,二者合并压制。-y 指定覆盖已有文件。

ffplay设置解码器播放8k*8k视频;ffmpeg命令补充相关推荐

  1. php ppt自动播放,ppt如何循环播放,ppt如何添加视频设置自动播放(ppt转换成视频)...

    演示文稿制作软件Microsoft Office PowerPoint,主要用于演示文稿的创建,即幻灯片的制作.可有效帮助演讲.教学,产品演示等,使用范围广泛.大家应该都比较熟悉吧.学习使用PPT,使 ...

  2. FFmpeg命令行工具-实用命令

    目录 help命令使用 流选择选项 视频封装解封装 3.1 视频格式转换 3.2 分离/合并视频音频流 3.3 截取视频片段 3.4 视频转换为m3u8格式 3.5 把视频文件推送到rtmp服务器 3 ...

  3. FFmpeg 命令行和API方式转换rtsp或264成Fragmented MP4

    FMP4概念 fmp4,是适应于现代浏览器的一种流媒体格式. 和mp4格式不同的是,以往的mp4格式化也分为header信息和payload信息,一个大的mp4就会有一个很大的头信息,不适合与现在的网 ...

  4. 无法找到CCTV直播MP4地址?七十行代码,简单使用FFplay直接观看还是下载CCTV栏目都轻松搞定(Python利用FLVCD硕鼠解析CCTV直播,FFplay播放并下载视频)

    我们在每天使用新闻的时候大都会以CCTV发布的新闻为准,我们的每天新闻收视率最高的还是我们的总台,大家闲来无事可能也会看一下央视网提供视频直播吧,看看还可以,但是我们可以发现我们完全解析不了,大家看一 ...

  5. 基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

    photo from Ready Player One 随着5G技术的发展,其高带宽.超低延时的特性为高分辨率全景视频的实现带来了更多的可能.本文来自Open WebRTC Toolkit (OWT) ...

  6. 实现h5端播放rtsp流视频--通过ffmpeg转流实现

    实现h5端播放rtsp流视频–通过ffmpeg转流实现 安装包可通过官网下载,也可以评论邮箱发给你 #1. 安装 ffmpeg 解压 ffmpeg.zip 添加系统环境变量 cmd 输入 ffmpeg ...

  7. ffplay flv mp4 转_手动视频转码教程,FFmpeg

    我相信很多人,在学习剪辑的时候都会在很多网站上下载影视素材.下载的素材有很多类型的格式,包括avi.rmvb.mkv.flv等等.得到这些格式的素材是无法直接进行编辑的,需要将其转换成MP4格式.这时 ...

  8. android ffmpeg 仿剪映播放器 剪辑视频 预览条 快速精准抽帧

    android ffmpeg 仿剪映播放器 剪辑视频 预览条 快速精准抽帧 由于本人想学习音视频相关的东西,所以找了剪映作为借鉴,通过仿照剪映的功能学习音视频相关的东西,所以有了这个项目 暂时这个项目 ...

  9. 一部8K立体视频,列举其主要参数,并给出依据这些参数计算其码率的方法。8K视频推广应用面临的主要问题你认为包括哪些方面。...

    8K立体视频的主要参数包括:分辨率(7680×4320).帧率(24fps).色彩深度(10位).编码格式(H.265/HEVC).根据这些参数可以计算出码率,公式为:码率(Mbps)= 分辨率(像素 ...

最新文章

  1. 厦门理工计算机研究生调剂,2018年厦门理工大学考研预调剂信息公布
  2. Mjpeg‐stream移植
  3. 关联查询mysql_《MySQL数据库》关联查询
  4. LintCode 1917. 切割剩余金属
  5. 美团股价盘中涨幅超7% 市值重回2万亿港元关口
  6. jinja2模板注入_Flask(Jinja2) 服务端模板注入漏洞
  7. 浮动QQ在线客服网站QQ在线咨询
  8. Topic Model的分类总结(LDA变种)
  9. 和秋叶一起学PPT之段落排版与字体(课时四、五)
  10. cx_oracle 字符编码,cx_oracle访问处理oracle中文乱码问题
  11. PLC通讯实现-C#实现欧姆龙以太网通讯FINS UDP(三)
  12. 学生用计算机数字键坏了,电脑键盘数字键失灵如何恢复
  13. Commit cannot be completed since the group has already rebalanced and assign
  14. React 项目兼容低版本浏览器
  15. python dis模块
  16. 0范数,1范数,2范数
  17. icloud 照片导出_如何将iCloud照片用作Apple TV的屏幕保护程序
  18. 2022年网络安全六大趋势预测
  19. 《计算机网络》(第8版)第五章 运输层 知识点总结
  20. 2021HW — Chrome 0day漏洞

热门文章

  1. 202209-2-何以包邮?
  2. Spark Core Aggregator
  3. 数据仓库实践杂谈(六)-数据校验
  4. 3.1栈和队列——顺序栈基本操作的实现
  5. 汉文博士 0.5.7.2386 发布:更新统一码第 11 版的数据库
  6. 学好ROS1/ROS2机器人是不是就能走向人生巅峰
  7. cmd静默运行_关于脚本:以静默模式运行CMD或BAT
  8. 使用TensorFlow编程实现一元逻辑回归
  9. 软件测试,如何月薪过万?
  10. python实现stepwise回归