1. 视频采集设备(比如电脑摄像头)采集到的数据,没有经过编码,如果要保存为普通播放器能回放的视频文件,该怎么做呢?是不是直接将数据以流的形式写入一个文件就行了?或者还需要加一些头信息,像BMP格式的图片那样?
2. 如果1中的数据经过H.264编码,然后再保存为普通播放器(能解码H.264)能回放的视频文件,做法是否和1一样呢?
3 个解决方案
#1
原始的视频文件,也就是YUV文件,视频采集到的数据一帧帧往文件里写就行了。
对于H264文件,只需把设备采集到的YUV数据一帧一帧的送进encoder,出来的码流写到文件,就OK了。
对于H264文件,只需把设备采集到的YUV数据一帧一帧的送进encoder,出来的码流写到文件,就OK了。
#2
1.需要视频文件头信息,用来描述视频流的属性比如大小,编码器,贞率等.
2.也是一样的,只是一个经过压缩了,一个没压缩.
2.也是一样的,只是一个经过压缩了,一个没压缩.
#3
谢谢两位!我还有个疑问。对于编码后的数据,我从数据流的中间某个位置开始保存,这样得到的文件播放器能否播放。比如视频一直在采集,编码器也一直在编码,但开始的部分没有保存,而是经过了一段时间之后才开始开始保存编码后的数据,这样能播放吗?我在其他地方看到,说要保存视频编码最开始的SPS和PSS部分,请问是不是这样?
#1
原始的视频文件,也就是YUV文件,视频采集到的数据一帧帧往文件里写就行了。
对于H264文件,只需把设备采集到的YUV数据一帧一帧的送进encoder,出来的码流写到文件,就OK了。
对于H264文件,只需把设备采集到的YUV数据一帧一帧的送进encoder,出来的码流写到文件,就OK了。
#2
1.需要视频文件头信息,用来描述视频流的属性比如大小,编码器,贞率等.
2.也是一样的,只是一个经过压缩了,一个没压缩.
2.也是一样的,只是一个经过压缩了,一个没压缩.
#3
谢谢两位!我还有个疑问。对于编码后的数据,我从数据流的中间某个位置开始保存,这样得到的文件播放器能否播放。比如视频一直在采集,编码器也一直在编码,但开始的部分没有保存,而是经过了一段时间之后才开始开始保存编码后的数据,这样能播放吗?我在其他地方看到,说要保存视频编码最开始的SPS和PSS部分,请问是不是这样?