MP4视频音频元数据设置语言
例如:第一个音轨语言设置为韩语"kor"
ffmpeg -y -i kor.mp4 -map 0:a:0 -c:a aac -metadata:s:a:0 language=kor audio_kor.mp4
// -map 0:a:0 第一个音轨
// -c:a aac 音频编码转aac 有些编码浏览器不能自动识别
// -metadata:s:a:0 language=kor 设置元信息
mp4视频文件添加多个音频信息
ffmpeg -y -i video.mp4 -i hin.mp4 -i kor.mp4 -map 0:v:0 -map 1:a:0 -map 2:a:0 -c:v copy -c:a aac -metadata:s:a:0 language=hin -metadata:s:a:1 language=kor -shortest index.mp4
// -map 0:v:0 第一个文件的第一个视频
// -map 1:a:0 第二个文件的第一个音频
// -map 2:a:0 第三个文件的第一个音频
// -metadata:s:a:0 language=hin 设置第一个音频语种为hin
// -metadata:s:a:1 language=kor 设置第二个音频语种为kor
mp4视频添加音频和字幕
ffmpeg -y -i video.mp4 -i hin.mp4 -i kor.mp4 -i sub.srt -map 0:v:0 -map 1:a:0 -map 2:a:0 -c:v copy -c:a aac -metadata:s:a:0 language=hin -metadata:s:a:1 language=kor -map 3 -c:s mov_text -metadata:s:s:0 language=eng index.mp4
解决视频加载缓慢问题
通过使用 -movflags faststart 选项,ffmpeg 将把 moov box 移动到文件的开头,使得播放器在下载一小部分视频内容后就可以开始解码和播放视频,同时继续下载剩余的视频流。这样可以实现视频的流式传输,并提升用户体验,让用户更快地开始观看视频。
解决音频不是从0秒开始的问题
-af "aresample=async=1:first_pts=0"
// `aresample=async=1:启用异步重新采样,这个选项可以帮助解决由于不同音频流采样率不同或者不同音频流之间的时钟不同步而导致的音频同步问题。`<br>
// `first_pts=0:指定第一个音频帧的时间戳为0,以确保音频流的时间戳是从0开始计算的
使用concat合并视频有文件数量限制,如果文件太多会报错