首页 > 其他分享 >ffmpeg mp4box制作dash流

ffmpeg mp4box制作dash流

时间:2023-05-07 17:44:16浏览次数:48  
标签:ffmpeg mp4box dash mp4 video vtt role 音频

1、检查源文件视频/音频,看是否需重编码,chrome能支持常见的h264/h265/vp9/av1,h265视乎显卡是否支持硬解和浏览器的版本是否足够新,音频方面aac/opus都可支持的如是ac3 dts的就需转码了。

2、假设源文件不需重编码,那么该分辨率不需转码,也不需拆分视频/音频,再用ffmpeg转其它分辨率就可以了,参考

ffmpeg -i video.mp4 -s 1920x1080 -c:v libx264 -keyint_min 30 -g 30 -an -sc_threshold 0 ED1920x1080.mp4

把libx264改为libx265就可以用h265编码了,-keyint_min 30这个是指定最小关键帧间隔,-g 30是指一组帧,这里可参考源视频的帧数。-sc_threshold 0 是禁用场景转换时自动插关键帧,都是与切分段就帧对齐有关的,如是h265 -sc_threshold 0 选项是不起效的,好像是不需要这个参数。-an 是不要音频,所以转出来的没有声音。

3、生成dash流,参考

MP4Box -dash 10000 -rap -frag-rap -dash-profile dashavc264:onDemand -init-segment-ext m4s -bs-switching no vidoe.mp4#video ED1920x1080.mp4#video video.mp4#audio zh-cn.vtt:role=subtitle:lang=简体中文 eng.vtt:role=subtitle:lang=英语 -out dash-mpd.mpd --rawsub

dash 10000指分段时间,这里是10s,因为分段下载有个加速过程,切太小影响连续速度,-rap -frag-rap这两个参数可在质量切换时更为平滑,dashavc264:onDemand指使用内置模版,-init-segment-ext m4s指init文件扩展名指定为m4s与一般mp4分文件区分,默认是mp4扩展名的,-bs-switching no指初始文件分段文件的分配之类的,vidoe.mp4#video指采用文件的第一个视频,ED1920x1080.mp4#video也是这样,video.mp4#audio这里是采用第一个音频,zh-cn.vtt:role=subtitle:lang=简体中文 eng.vtt:role=subtitle:lang=英语 这里是设定字幕,--rawsub是指字幕采用原文件。

标签:ffmpeg,mp4box,dash,mp4,video,vtt,role,音频
From: https://www.cnblogs.com/xiao-tou-ming/p/17379670.html

相关文章

  • 用ffmpeg合并字幕文件到视频里面
    下了个视频文件是ass字幕+mkv格式视频,原视频文件还内置了英文字幕,上网查了下fmpeg用法,正好我电脑里面jellyfin附带了ffmpeg命令,直接用就可以了。去掉字幕"C:\ProgramFiles\Jellyfin\Server\ffmpeg.exe"-i"test.mkv"-vcodeccopy-acodeccopy-sntest-no-sub.mkv合并字幕......
  • C# 细数AForge.Video.FFMPEG使用过程中踩的坑及解决方案
    细数AForge.Video.FFMPEG使用过程中踩的坑及解决方案在后台代码中只要有引用到AForge.Video.FFMPEG都不用等到具体调用,只要运行直接就报错解决方案:发生这个问题的原因比较简单,因为AForge.Video.FFMPEG使用VC++写的,编译的时候已经被编译成本地代码,而C#一般目标平台都是“AnyCP......
  • FFmpeg向组播地址推流
    ffmpeg.exe-re-stream_loop-1-iC:\test_01.mp4-vcodeccopy-pkt_size1400-fh264"udp://239.255.255.250:54546"推一个MP4到本机的组播地址(netshinterfaceipv4showjoins 查看win本机的组播地址) 从这个组播地址拉流,注意不是组播分发出去再拉回来,相当于这里是拉......
  • VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP
    PJSIP是一个开源的SIP协议栈。它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了。 它实现了SIP、SDP、RTP、STUN、TURN和ICE。PJSIP作为基于SIP的一个多媒体通信框架提供了非常清晰的API,以及NAT穿越的功能。PJSIP具有非常好的移植性,几乎支持现今所有系统:从桌面系统......
  • 2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。
    2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。答案2023-05-04:这段代码实现了使用libswscale库进行视频缩放的功能。下面是程序的主要流程:1.获取命令行参数,包括输出文件名和目标图像大小。2.解析目标图像大小,生成指定大小的输出文件。3.创建缩......
  • ffmpeg下载m3u8视频文件并保存为mp4格式
    ffmpeg-i'http://xx.com/xx.m3u8'-ccopy-bsf:aaac_adtstoascxx.mp4#修改User-Agentffmpeg-i'http://xx.com/xx.m3u8'-ccopy-bsf:aaac_adtstoascxx.mp4-user-agent"Mozilla/5.0(Macintosh;IntelMacOSX10_15_7)AppleWebKit/537......
  • k8s Kubernetes Dashboard 安装与使用
    https://github.com/kubernetes/dashboardhttps://developer.aliyun.com/article/745086https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.mdhttps://kubernetes.io/zh-cn/docs/tasks/access-application-cluster/web-ui-......
  • ffmpeg转换视频编码
    下载ffmpeg官网下载压缩包。关键的是三个exe使用ffmpegcmd进入到三个exe的存放路径下,或者把三个exe的存放路径添加到系统路径。输入指令ffmpeg-ioriginal_video.mp4-vfscale=640:360result_video.mp4-hide_banner640*360可以修改成想要的尺寸。python使用ffmpypi......
  • 2023-04-30:用go语言重写ffmpeg的resampling_audio.c示例,它实现了音频重采样的功能。
    2023-04-30:用go语言重写ffmpeg的resampling_audio.c示例,它实现了音频重采样的功能。答案2023-04-30:resampling_audio.c是FFmpeg中的一个源文件,其主要功能是实现音频重采样。音频重采样是指将一段音频数据从一个采样率、声道数或样本格式转换为另一种采样率、声道数或样本格......
  • flannel dashboard yaml
    apiVersion:v1kind:Namespacemetadata:name:kubernetes-dashboard---apiVersion:v1kind:ServiceAccountmetadata:labels:k8s-app:kubernetes-dashboardname:kubernetes-dashboardnamespace:kubernetes-dashboard---apiVersion:v1kind:......