我希望我的网站允许用户根据我提供的源视频准确地创建自己的剪辑。
我有一个源视频文件,我首先要转换为适合网站的内容:
Input #0, matroska,webm, from 'source.mkv':
Duration: 00:28:18.57, start: 0.000000, bitrate: 10183 kb/s
Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 48 tbc (default)
Stream #0:1: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s (default)
我用ffmpeg像这样转换它:
ffmpeg -i source.mkv -c:v libx264 -c:a aac -strict experimental -vf scale="960:-1" source.mp4
观看此视频可以满足我的需求,质量足够好,文件大小也足够小,并且可以在我的网站上加载/播放。
我有一个网页,允许用户选择该视频的开始和终点-并创建剪辑。这是我使用的ffmpeg命令的示例:
-ss 577.920 -i source.mp4 -t 011.980 -codec:v copy -codec:a copy -vf scale="960:-1" clip1.mp4
问题是剪辑并不总是足够精确。通常,音频足够准确,但是视频会提前半秒钟停止播放。
有什么方法可以使这种精确和同步的速度达到0.2秒吗?
编辑:添加-force_key_frames 00:00:00.2
没有帮助。
编辑:我更改使用剪辑,-c:v libx264 -c:a aac -strict experimental
而不是-codec:v copy -codec:a copy
具有良好(ish)结果。
该文件可以在外部播放而没有问题-但是,当我将其加载到html5视频元素中并播放时-视频的最后一部分(音频很好)会冻结。冻结的最后一部分不到一秒钟。
我应该与其他视频编码器一起尝试吗?libx264的最佳替代方法是什么?请记住,我可能希望将其放置在公共网站上。
但是,坚持不下去,就不能正确播放MPC或Windows Media Player之类的播放器这一事实,是否暗示Google Chrome或HTML video元素有问题?还是我使用的是不受支持的编码?