Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 镀铬无间隙WebM+;FFMPEG_Javascript_Google Chrome_Audio_Ffmpeg_Mse - Fatal编程技术网

Javascript 镀铬无间隙WebM+;FFMPEG

Javascript 镀铬无间隙WebM+;FFMPEG,javascript,google-chrome,audio,ffmpeg,mse,Javascript,Google Chrome,Audio,Ffmpeg,Mse,我正在尝试对使用ffmpeg生成的片段进行无间隙播放: 我使用ffmpeg对一个源中的3个文件进行编码,在48kHz的频率下有240000个样本,即5秒 ffmpeg -i tone.wav -af atrim=start_sample=24000*0:end_sample=240000*1 -c:a opus 0.webm ffmpeg -i tone.wav -af atrim=start_sample=24000*1:end_sample=240000*2 -c:a opus 1.webm

我正在尝试对使用ffmpeg生成的片段进行无间隙播放:

我使用ffmpeg对一个源中的3个文件进行编码,在48kHz的频率下有240000个样本,即5秒

ffmpeg -i tone.wav -af atrim=start_sample=24000*0:end_sample=240000*1 -c:a opus 0.webm
ffmpeg -i tone.wav -af atrim=start_sample=24000*1:end_sample=240000*2 -c:a opus 1.webm
ffmpeg -i tone.wav -af atrim=start_sample=24000*2:end_sample=240000*3 -c:a opus 2.webm
当查看文件中的元数据(使用
ffprobe
ffmpeg-logleveldebug
)时,我得到了以下不一致的值:

Duration: 5.01,
Start 0.007
discard 648/900 samples
240312 samples decoded
如果我有几个这样的文件,我将如何无缝地播放它们而没有间隙? i、 e.在我尝试过的浏览器中:

sourceBuffer.timestampOffset = 5 * n - 648/48000; 
sourceBuffer.appendWindowStart = 5 * n; 
sourceBuffer.appendWindowEnd = 5 * (n+1);
sourceBuffer.appendBuffer(new Uint8Array(buffer[n]));
但是,存在可听见的间隙

我应该丢弃多少样品?0.007*48000、648或240312-240000

您需要一个简单的http服务器来运行它:

 << ls
 >> index.html 0.webm 1.webm 2.webm
 << npm install -g http-server
 << http-server --cors
>index.html 0.webm 1.webm 2.webm

你试过使用框架:旗帜吗?我不是opus/webm编码器方面的专家。。。就像h.264限制在i帧上剪切一样,opus也有类似的限制(不确定是编码器还是容器)。我假设修剪到wav文件会产生精确的长度。为什么要使用opus/webm,可以用aac代替吗?在opus中,240000个样本正好是250帧。编码器需要一些启动。我和aac也有类似更糟糕的问题。