搜档网
当前位置:搜档网 › FFmpeg如何同步音视频的解决方案

FFmpeg如何同步音视频的解决方案

FFmpeg如何同步音视频的解决方案
FFmpeg如何同步音视频的解决方案

【转】如何同步视频

2010-07-16 10:18

转载自fandy586

最终编辑fandy586

如何同步视频

PTS和DTS

幸运的是,音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如果我们只是简单的通过数帧和乘以帧率的方式来同步视频,那么就很有可能会失去同步。于是作为一种补充,在流中的包有种叫做DTS(解码时间戳)和PTS(显示时间戳)的机制。为了这两个参数,你需要了解电影存放的方式。像MPEG等格式,使用被叫做B帧(B表示双向bidrectional)的方式。另外两种帧被叫做I帧和P帧(I表示关键帧,P表示预测帧)。I帧包含了某个特定的完整图像。P帧依赖于前面的I帧和P帧并且使用比较或者差分的方式来编码。B帧与P帧有点类似,但是它是依赖于前面和后面的帧的信息的。这也就解释了为什么我们可能在调用avcodec_decode_video以后会得不到一帧图像。

所以对于一个电影,帧是这样来显示的:I B B P。现在我们需要在显示B帧之前知道P帧中的信息。因此,帧可能会按照这样的方式来存储:IPBB。这就是为什么我们会有一个解码时间戳和一个显示时间戳的原因。解码时间戳告诉我们什么时候需要解码,显示时间戳告诉我们什么时候需要显示。所以,在这种情况下,我们的流可以是这样的:

PTS: 1 4 2 3

DTS: 1 2 3 4

Stream: I P B B

通常PTS和DTS只有在流中有B帧的时候会不同。

当我们调用av_read_frame()得到一个包的时候,PTS和DTS的信息也会保存在包中。但是我们真正想要的PTS是我们刚刚解码出来的原始帧的PTS,这样我们才能知道什么时候来显示它。然而,我们从avcodec_decode_video()函数中得到的帧只是一个AVFrame,其中并没有包含有用的PTS值(注意:AVFrame并没有包含时间戳信息,但当我们等到帧的时候并不是我们想要的样子)。然而,ffmpeg重

新排序包以便于被avcodec_decode_video()函数处理的包的DTS可以总是与其返回的PTS相同。但是,另外的一个警告是:我们也并不是总能得到这个信息。

不用担心,因为有另外一种办法可以找到帧的PTS,我们可以让程序自己来重新排序包。我们保存一帧的第一个包的PTS:这将作为整个这一帧的PTS。我们可以通过函数avcodec_decode_video()来计算出哪个包是一帧的第一个包。怎样实现呢?任何时候当一个包开始一帧的时候,avcodec_decode_video()将调用一个函数来为一帧申请一个缓冲。当然,ffmpeg允许我们重新定义那个分配内存的函数。所以我们制作了一个新的函数来保存一个包的时间戳。

当然,尽管那样,我们可能还是得不到一个正确的时间戳。我们将在后面处理这个问题。

同步

现在,知道了什么时候来显示一个视频帧真好,但是我们怎样来实际操作呢?这里有个主意:当我们显示了一帧以后,我们计算出下一帧显示的时间。然后我们简单的设置一个新的定时器来。你可能会想,我们检查下一帧的PTS值而不是系统时钟来看超时是否会到。这种方式可以工作,但是有两种情况要处理。

首先,要知道下一个PTS是什么。现在我们能添加视频速率到我们的PTS中--太对了!然而,有些电影需要帧重复。这意味着我们重复播放当前的帧。这将导致程序显示下一帧太快了。所以我们需要计算它们。

第二,正如程序现在这样,视频和音频播放很欢快,一点也不受同步的影响。如果一切都工作得很好的话,我们不必担心。但是,你的电脑并不是最好的,很多视频文件也不是完好的。所以,我们有三种选择:同步音频到视频,同步视频到音频,或者都同步到外部时钟(例如你的电脑时钟)。从现在开始,我们将同步视频到音频。

写代码:获得帧的时间戳

现在让我们到代码中来做这些事情。我们将需要为我们的大结构体添加一些成员,但是我们会根据需要来做。首先,让我们看一下视频线程。记住,在这里我们得到了解码线程输出到队列中的包。这里我们需要的是从avcodec_decode_video函数中得到帧的时间戳。我们讨论的第一种方式是从上次处理的包中得到DTS,这是很容易的:

double pts;

for(;;) {

if(packet_queue_get(&is->videoq, packet, 1) < 0) { // means we quit getting packets

break;

}

pts = 0;

// Decode video frame

len1 = avcodec_decode_video(is->video_st->codec, pFrame, &frameFinished,

packet->data, packet->size);

if(packet->dts != AV_NOPTS_VALUE) {

pts = packet->dts;

} else {

pts = 0;

}

pts *= av_q2d(is->video_st->time_base);

如果我们得不到PTS就把它设置为0。

好,那是很容易的。但是我们所说的如果包的DTS不能帮到我们,我们需要使用这一帧的第一个包的PTS。我们通过让ffmpeg使用我们自己的申请帧程序来实现。下面的是函数的格式:

intget_buffer(structAVCodecContext *c, AVFrame *pic);

void release_buffer(structAVCodecContext *c, AVFrame *pic);

申请函数没有告诉我们关于包的任何事情,所以我们要自己每次在得到一个包的时候把PTS保存到一个全局变量中去。我们自己以读到它。然后,我们把值保存到AVFrame结构体难理解的变量中去。所以一开始,这就是我们的函数:

uint64_t global_video_pkt_pts = AV_NOPTS_VALUE;

intour_get_buffer(structAVCodecContext *c, AVFrame *pic) {

int ret = avcodec_default_get_buffer(c, pic);

uint64_t *pts = av_malloc(sizeof(uint64_t));

*pts = global_video_pkt_pts;

pic->opaque = pts;

return ret;

}

void our_release_buffer(structAVCodecContext *c, AVFrame *pic) {

if(pic) av_freep(&pic->opaque);

avcodec_default_release_buffer(c, pic);

}

函数avcodec_default_get_buffer和avcodec_default_release_buffer是ffmpeg中默认的申请缓冲的函数。函数av_freep是一个内存管理函数,它不但把内存释放而且把指针设置为NULL。

现在到了我们流打开的函数(stream_component_open),我们添加这几行来告诉ffmpeg如何去做:

codecCtx->get_buffer = our_get_buffer;

codecCtx->release_buffer = our_release_buffer;

现在我们必需添加代码来保存PTS到全局变量中,然后在需要的时候来使用它。我们的代码现在看起来应该是这样子:

for(;;) {

if(packet_queue_get(&is->videoq, packet, 1) < 0) {

// means we quit getting packets

break;

}

pts = 0;

// Save global pts to be stored in pFrame in first call

global_video_pkt_pts = packet->pts;

// Decode video frame

len1 = avcodec_decode_video(is->video_st->codec, pFrame, &frameFinished,

packet->data, packet->size);

if(packet->dts == AV_NOPTS_VALUE

&&pFrame->opaque && *(uint64_t*)pFrame->opaque != AV_NOPTS_VALUE) {

pts = *(uint64_t *)pFrame->opaque;

} else if(packet->dts != AV_NOPTS_VALUE) {

pts = packet->dts;

} else {

pts = 0;

}

pts *= av_q2d(is->video_st->time_base);

技术提示:你可能已经注意到我们使用int64来表示PTS。这是因为PTS是以整型来保存的。这个值是一个时间戳相当于时间的度量,用来以流的time_base为单位进行时间度量。例如,如果一个流是24帧每秒,值为42的PTS表示这一帧应该排在第42个帧的位置如果我们每秒有24帧(这里并不完全正确)。

我们可以通过除以帧率来把这个值转化为秒。流中的time_base值表示1/framerate(对于固定帧率来说),所以得到了以秒为单位的PTS,我们需要乘以time_base。

写代码:使用PTS来同步

现在我们得到了PTS。我们要注意前面讨论到的两个同步问题。我们将定义一个函数叫做synchronize_video,它可以更新同步的PTS。

这个函数也能最终处理我们得不到PTS的情况。同时我们要知道下一帧的时间以便于正确设置刷新速率。我们可以使用内部的反映当前视频已经播放时间的时钟video_clock来完成这个功能。我们把这些值添加到大结构体中。

typedefstructVideoState {

double video_clock; ///

下面的是函数synchronize_video,它可以很好的自我注释:

double synchronize_video(VideoState *is, AVFrame *src_frame, double pts) {

double frame_delay;

if(pts != 0) {

is->video_clock = pts;

} else {

pts = is->video_clock;

}

frame_delay = av_q2d(is->video_st->codec->time_base);

frame_delay += src_frame->repeat_pict * (frame_delay * 0.5);

is->video_clock += frame_delay;

return pts;

}

你也会注意到我们也计算了重复的帧。

现在让我们得到正确的PTS并且使用queue_picture来队列化帧,添加一个新的时间戳参数pts:

// Did we get a video frame?

if(frameFinished) {

pts = synchronize_video(is, pFrame, pts);

if(queue_picture(is, pFrame, pts) < 0) {

break;

}

}

对于queue_picture来说唯一改变的事情就是我们把时间戳值pts保存到VideoPicture结构体中,我们必需添加一个时间戳变量到结构体中并且添加一行代码:

typedefstructVideoPicture {

...

double pts;

}

intqueue_picture(VideoState *is, AVFrame *pFrame, double pts) {

... stuff ...

if(vp->bmp) {

... convert picture ...

vp->pts = pts;

... alert queue ...

}

现在我们的图像队列中的所有图像都有了正确的时间戳值,所以让我们看一下视频刷新函数。你会记得上次我们用80ms的刷新时间来欺骗它。那么,现在我们将会算出实际的值。

我们的策略是通过简单计算前一帧和现在这一帧的时间戳来预测出下一个时间戳的时间。同时,我们需要同步视频到音频。我们将设置一个音频时间audio clock;一个内部值记录了我们正在播放的音频的位置。就像从任意的mp3播放器中读出来的数字一样。既然我们把视频同步到音频,视频线程使用这个值来算出是否太快还是太慢。

我们将在后面来实现这些代码;现在我们假设我们已经有一个可以给我们音频时间的函数get_audio_clock。一旦我们有了这个值,我们在音频和视频失去同步的时候应该做些什么呢?简单而有点笨的办法是试着用跳过正确帧或者其它的方式来解决。作为一种替代的手段,我们会调整下次刷新的值;如果时间戳太落后于音频时间,我们加倍计算延迟。如果时间戳太领先于音频时间,我们将尽可能快的刷新。既然我们有了调整过的时间和延迟,我们将把它和我们通过frame_timer计算出来的时间进行比较。这个帧时间frame_timer将会统计出电影播放中所有的延时。换句话说,这个frame_timer就是指我们什么时候来显示下一帧。我们简单的添加新的帧定时器延时,把它和电脑的系统时间进行比较,然后使用那个值来调度下一次刷新。这可能有点难以理解,所以请认真研究代码:

void video_refresh_timer(void *userdata) {

VideoState *is = (VideoState *)userdata;

VideoPicture *vp;

double actual_delay, delay, sync_threshold, ref_clock, diff;

if(is->video_st) {

if(is->pictq_size == 0) {

schedule_refresh(is, 1);

} else {

vp = &is->pictq[is->pictq_rindex];

delay = vp->pts - is->frame_last_pts;

if(delay <= 0 || delay >= 1.0) {

delay = is->frame_last_delay;

}

is->frame_last_delay = delay;

is->frame_last_pts = vp->pts;

ref_clock = get_audio_clock(is);

diff = vp->pts - ref_clock;

sync_threshold = (delay > AV_SYNC_THRESHOLD) ? delay : AV_SYNC_THRESHOLD; if(fabs(diff) < AV_NOSYNC_THRESHOLD) {

if(diff <= -sync_threshold) {

delay = 0;

} else if(diff >= sync_threshold) {

delay = 2 * delay;

}

}

is->frame_timer += delay;

actual_delay = is->frame_timer - (av_gettime() / 1000000.0); if(actual_delay< 0.010) {

actual_delay = 0.010;

}

schedule_refresh(is, (int)(actual_delay * 1000 + 0.5));

video_display(is);

if(++is->pictq_rindex == VIDEO_PICTURE_QUEUE_SIZE) { is->pictq_rindex = 0;

}

SDL_LockMutex(is->pictq_mutex);

is->pictq_size--;

SDL_CondSignal(is->pictq_cond);

SDL_UnlockMutex(is->pictq_mutex);

}

} else {

schedule_refresh(is, 100);

}

}

我们在这里做了很多检查:首先,我们保证现在的时间戳和上一个时间戳之间的处以delay是有意义的。如果不是的话,我们就猜测着用上次的延迟。接着,我们有一个同步阈值,因为在同步的时候事情并不总是那么完美的。在ffplay中使用0.01作为它的值。我们也保证阈值不会比时间戳之间的间隔短。最后,我们把最小的刷新值设置为10毫秒。

(这句不知道应该放在哪里)事实上这里我们应该跳过这一帧,但是我们不想为此而烦恼。

我们给大结构体添加了很多的变量,所以不要忘记检查一下代码。同时也不要忘记在函数streame_component_open中初始化帧时间frame_timer和前面的帧延迟frame delay:

is->frame_timer = (double)av_gettime() / 1000000.0;

is->frame_last_delay = 40e-3;

同步:声音时钟

现在让我们看一下怎样来得到声音时钟。我们可以在声音解码函数audio_decode_frame中更新时钟时间。现在,请记住我们并不是每次调用这个函数的时候都在处理新的包,所以有我们要在两个地方更新时钟。第一个地方是我们得到新的包的时候:我们简单的设置声音时钟为这个包的时间戳。然后,如果一个包里有许多帧,我们通过样本数和采样率来计算,所以当我们得到包的时候:

if(pkt->pts != AV_NOPTS_VALUE) {

is->audio_clock = av_q2d(is->audio_st->time_base)*pkt->pts;

}

然后当我们处理这个包的时候:

pts = is->audio_clock;

*pts_ptr = pts;

n = 2 * is->audio_st->codec->channels;

is->audio_clock += (double)data_size /

(double)(n * is->audio_st->codec->sample_rate);

一点细节:临时函数被改成包含pts_ptr,所以要保证你已经改了那些。这时的pts_ptr是一个用来通知audio_callback函数当前声音包的时间戳的指针。这将在下次用来同步声音和视频。

现在我们可以最后来实现我们的get_audio_clock函数。它并不像得到is->audio_clock值那样简单。注意我们会在每次处理它的时候设置声音时间戳,但是如果你看了audio_callback函数,它花费了时间来把数据从声音包中移到我们的输出缓冲区中。这意味着我们声音时钟中记录的时间比实际的要早太多。所以我们必须要检查一下我们还有多少没有写入。下面是完整的代码:

double get_audio_clock(VideoState *is) {

double pts;

inthw_buf_size, bytes_per_sec, n;

pts = is->audio_clock;

hw_buf_size = is->audio_buf_size - is->audio_buf_index; bytes_per_sec = 0;

n = is->audio_st->codec->channels * 2;

if(is->audio_st) {

bytes_per_sec = is->audio_st->codec->sample_rate * n; }

if(bytes_per_sec) {

pts -= (double)hw_buf_size / bytes_per_sec;

}

return pts;

}

你应该知道为什么这个函数可以正常工作了;)

这就是了!让我们编译它:

gcc -o tutorial05 tutorial05.c -lavutil -lavformat -lavcodec -lz -lm`sdl-config --cflags --libs`

最后,你可以使用我们自己的电影播放器来看电影了。下次我们将看一下声音同步,然后接下来的指导我们会讨论查询。

同步音频

现在我们已经有了一个比较像样的播放器。所以让我们看一下还有哪些零碎的东西没处理。上次,我们掩饰了一点同步问题,也就是同步音频到视频而不是其它的同步方式。我们将采用和视频一样的方式:做一个内部视频时钟来记录视频线程播放了多久,然后同步音频到上面去。后面我们也来看一下如何推而广之把音频和视频都同步到外部时钟。

生成一个视频时钟

现在我们要生成一个类似于上次我们的声音时钟的视频时钟:一个给出当前视频播放时间的内部值。开始,你可能会想这和使用上一帧的时间戳来更新定时器一样简单。但是,不要忘了视频帧之间的时间间隔是很长的,以毫秒为计量的。解决办法是跟踪另外一个值:我们在设置上一帧时间戳的时候的时间值。于是当前视频时间值就是PTS_of_last_frame + (current_time -

time_elapsed_since_PTS_value_was_set)。这种解决方式与我们在函数get_audio_clock中的方式很类似。

所在在我们的大结构体中,我们将放上一个双精度浮点变量video_current_pts和一个64位宽整型变量video_current_pts_time。时钟更新将被放在video_refresh_timer函数中。

void video_refresh_timer(void *userdata) {

if(is->video_st) {

if(is->pictq_size == 0) {

schedule_refresh(is, 1);

} else {

vp = &is->pictq[is->pictq_rindex];

is->video_current_pts = vp->pts;

is->video_current_pts_time = av_gettime();

不要忘记在stream_component_open函数中初始化它:

is->video_current_pts_time = av_gettime();

现在我们需要一种得到信息的方式:

double get_video_clock(VideoState *is) {

double delta;

delta = (av_gettime() - is->video_current_pts_time) / 1000000.0;

return is->video_current_pts + delta;

}

提取时钟

但是为什么要强制使用视频时钟呢?我们更改视频同步代码以致于音频和视频不会试着去相互同步。想像一下我们让它像ffplay一样有一个命令行参数。所以让我们抽象一样这件事情:我们将做一个新的封装函数get_master_clock,用来检测av_sync_type变量然后决定调用get_audio_clock还是get_video_clock或者其它的想使用的获得时钟的函数。我们甚至可以使用电脑时钟,这个函数我们叫做

get_external_clock:

enum {

AV_SYNC_AUDIO_MASTER,

AV_SYNC_VIDEO_MASTER,

AV_SYNC_EXTERNAL_MASTER,

};

#define DEFAULT_AV_SYNC_TYPE AV_SYNC_VIDEO_MASTER double get_master_clock(VideoState *is) {

if(is->av_sync_type == AV_SYNC_VIDEO_MASTER) {

return get_video_clock(is);

} else if(is->av_sync_type == AV_SYNC_AUDIO_MASTER) { return get_audio_clock(is);

} else {

return get_external_clock(is);

}

}

main() {

...

is->av_sync_type = DEFAULT_AV_SYNC_TYPE;

...

}

同步音频

现在是最难的部分:同步音频到视频时钟。我们的策略是测量声音的位置,把它与视频时间比较然后算出我们需要修正多少的样本数,也就是说:我们是否需要通过丢弃样本的方式来加速播放还是需要通过插值样本的方式来放慢播放?

我们将在每次处理声音样本的时候运行一个synchronize_audio的函数来正确的收缩或者扩展声音样本。然而,我们不想在每次发现有偏差的时候都进行同步,因为这样会使同步音频多于视频包。所以我们为函数synchronize_audio设置一个最小连续值来限定需要同步的时刻,这样我们就不会总是在调整了。当然,就像上次那样,“失去同步”意味着声音时钟和视频时钟的差异大于我们的阈值。

所以我们将使用一个分数系数,叫c,所以现在可以说我们得到了N个失去同步的声音样本。失去同步的数量可能会有很多变化,所以我们要计算一下失去同步的长度的均值。例如,第一次调用的时候,显示出来我们失去同步的长度为40ms,下次变为50ms等等。但是我们不会使用一个简单的均值,因为距离现在最近的值比靠前的值要重要的多。所以我们将使用一个分数系统,叫c,然后用这样的公式来计算差异:diff_sum = new_diff + diff_sum*c。当我们准备好去找平均差异的时候,我们用简单的计算方式:avg_diff = diff_sum * (1-c)。

注意:为什么会在这里?这个公式看来很神奇!嗯,它基本上是一个使用等比级数的加权平均值。我不知道这是否有名字(我甚至查过维基百科!),但是如果想要更多的信息,这里是一个解释https://www.sodocs.net/doc/fa16422823.html,/ffmpeg/weightedmean.html 或者在

https://www.sodocs.net/doc/fa16422823.html,/ffmpeg/weightedmean.txt 里。

下面是我们的函数:

intsynchronize_audio(VideoState *is, short *samples,

intsamples_size, double pts) {

int n;

double ref_clock;

n = 2 * is->audio_st->codec->channels;

if(is->av_sync_type != AV_SYNC_AUDIO_MASTER) {

double diff, avg_diff;

intwanted_size, min_size, max_size, nb_samples;

ref_clock = get_master_clock(is);

diff = get_audio_clock(is) - ref_clock;

if(diff < AV_NOSYNC_THRESHOLD) {

// accumulate the diffs

is->audio_diff_cum = diff + is->audio_diff_avg_coef

* is->audio_diff_cum;

if(is->audio_diff_avg_count< AUDIO_DIFF_AVG_NB) {

is->audio_diff_avg_count++;

} else {

avg_diff = is->audio_diff_cum * (1.0 - is->audio_diff_avg_coef); }

} else {

is->audio_diff_avg_count = 0;

is->audio_diff_cum = 0;

}

}

return samples_size;

}

现在我们已经做得很好;我们已经近似的知道如何用视频或者其它的时钟来调整音频了。所以让我们来计算一下要在添加和砍掉多少样本,并且如何在“Shrinking/expanding buffer code”部分来写上代码:

if(fabs(avg_diff) >= is->audio_diff_threshold) {

wanted_size = samples_size +

((int)(diff * is->audio_st->codec->sample_rate) * n);

min_size = samples_size * ((100 - SAMPLE_CORRECTION_PERCENT_MAX)

/ 100);

max_size = samples_size * ((100 + SAMPLE_CORRECTION_PERCENT_MAX)

/ 100);

if(wanted_size

wanted_size = min_size;

对新刑诉法中关于同步录音录像规定的理解与适用

对新刑诉法中关于同步录音录像规定的理解与适用 作者:陆光曦、赵涛时间:2012-07-20新闻来源:正义网【字号:大| 中| 小】新修订的刑事诉讼法第二条明确规定“中华人民共和国刑事诉讼法的任务,是保证准确、及时地查明犯罪事实,正确应用法律,惩罚犯罪分子,保障无罪的人不受刑事追究,教育公民自觉遵守法律,积极同犯罪行为作斗争,维护社会主义法制,尊重和保障人权,保护公 民的人身权利、财产权利、民主权利和其他权利,保障社会主义建设事业的顺利进行。” 由此可以看出打击犯罪与尊重、保障人权并重成为刑事诉讼的精神实质。实践中,如何正确理解、适用这一原则,成为司法人员在刑事诉讼活动中面临的一个重大、现实的问题。而在刑事诉讼活动中,讯问犯罪嫌疑人时采取全程录音录像是实现打击犯罪与尊重、保障人权并重的有效手段之一。2006年,高检院在全国检察机关推行讯问职务犯罪嫌疑人全 程同步录音录像,做出了有益的尝试与探索。而新刑诉法也对这一尝试、探索进行了吸收。新刑诉法第一百二十一条规定:“侦查人员在讯问犯罪嫌疑人的时候,可以对讯问过程进 行录音或者录像;对于可能判处无期徒刑、死刑的案件或者其他重大犯罪案件,应当对讯 问过程进行录音或者录像。录音或者录像应当全程进行,保持完整性。” 一、新刑诉法规定讯问时同步录音录像的重大意义 首先,录音录像有利于规范侦查人员的讯问手段。录音录像这种方式客观记录和再现讯问的全部过程,加强了对办案人员讯问活动的监督,促使侦查人员转变执法观念,规范执 法行为,提高人权保障意识和合法办案的自觉性,提高了侦查人员办案水平。 其次,录音录像有利于及时固定证据,防止犯罪嫌疑人翻供或诬陷办案人员,提高办案 效率。有些刑事案件,特别是涉毒案件,对犯罪嫌疑人口供有较强的依赖性。绝大多数涉 毒案件没有查获毒品,定案证据除了犯罪嫌疑人和其上、下线的口供之外,很难收集到其 他形式的证据予以印证,而涉毒案件中,犯罪嫌疑人翻供现象时有发生。翻供的理由又多 集中在侦查人员对其实施了刑讯逼供。而有了对讯问过程的录音录像,讯问的过程得以完

音视频同步原理

视频流中的DTS/PTS到底是什么? DTS(解码时间戳)和PTS(显示时间戳)分别是解码器进行解码和显示帧时相对于SCR(系统参考)的时间戳。SCR可以理解为解码器应该开始从磁盘读取数据时的时间。 mpeg文件中的每一个包都有一个SCR时间戳并且这个时间戳就是读取这个数据包时的系统时间。通常情况下,解码器会在它开始读取mpeg流时启动系统时钟(系统时钟的初始值是第一个数据包的SCR值,通常为0但也可以不从0开始)。 DTS 时间戳决定了解码器在SCR时间等于DTS时间时进行解码,PTS时间戳也是类似的。通常,DTS/PTS 时间戳指示的是晚于音视频包中的SCR的一个时间。例如,如果一个视频数据包的SCR是100ms(意味着此包是播放100ms以后从磁盘中读取的),那么DTS/PTS值就差不多是200 /280ms,表明当SCR 到200ms时这个视频数据应该被解码并在80ms以后被显示出来(视频数据在一个buffer中一直保存到开始解码) 下溢通常发生在设置的视频数据流相关mux率太高。 如果mux率是1000000bits/sec(意味着解码器要以1000000bits/sec的速率读取文件),可是视频速率是2000000bits/sec(意味着需要以2000000bits/sec的速率显示视频数据),从磁盘中读取视频数据时速度不够快以至于1秒钟内不能够读取足够的视频数据 。这种情况下DTS/PTS时间戳就会指示视频在从硬盘中读出来之前进行解码或显示(DTS/PTS时间戳就要比包含它们的数据包中的SCR时间要早了)。 如今依靠解码器,这基本已经不是什么问题了(尽管MPEG文件因为应该没有下溢而并不完全符合MPEG 标准)。一些解码器(很多著名的基于PC的播放器)尽可能快的读取文件以便显示视频,可以的话直接忽略SCR。 注意在你提供的列表中,平均的视频流速率为~3Mbps(3000000bits/sec)但是它的峰值达到了14Mbps (相当大,DVD限制在9.8Mbps内)。这意味着mux率需要调整足够大以处理14Mbps的部分,bbMPEG 计算出来的mux率有时候太低而导致下溢。 你计划让视频流速率这么高么?这已经超过了DVD的说明了,而且很可能在大多数独立播放其中都不能播放。如果你不是这么计划,我会从1增加mquant的值并且在视频设置中将最大码流设置为9Mbps以保持一个小一点的码流。 如果你确实想让视频码率那么高,你需要增大mux率。从提供的列表可以得出bbMPEG使用14706800bits/sec或者1838350bytes /sec的mux率(总数据速率为:1838350bytes/sec (14706800bits/sec)行)。你在强制mux率字段设置的值应该是以bytes/sec为单位并被50整除。所以我会从36767(1838350/50)开始,一直增加直到不会再出现下溢错误为止

同步录音录像规定

(2014年)公安机关讯问犯罪嫌疑人录音录像工作规定 作者:合肥律师来源:https://www.sodocs.net/doc/fa16422823.html, 日期:2014-11-29 阅读:229次 公安部关于印发《公安机关讯问犯罪嫌疑人录音录像工作规定》的通知 公通字〔2014〕33号 各省、自治区、直辖市公安厅、局,新疆生产建设兵团公安局: 修改后《刑事诉讼法》增加了办理重大犯罪案件时,侦查人员对讯问犯罪嫌疑人的过程进行录音录像的规定。为确保修改后《刑事诉讼法》的贯彻落实,公安部制定了《公安机关讯问犯罪嫌疑人录音录像工作规定》,现印发给你们。各级公安机关要充分认识讯问犯罪嫌疑人录音录像工作对于规范执法办案、保障犯罪嫌疑人权利、保护办案民警的重要意义,严格执行修改后《刑事诉讼法》和《规定》要求,切实做到依法讯问取证,实现对重大犯罪案件讯问过程全程录音录像,进一步提高公安机关的执法办案质量和效率。 近年来,各地公安机关大力加强执法规范化建设,执法办案场所改造基本完成,为做好讯问犯罪嫌疑人录音录像工作提供了坚实的硬件条件。各级公安机关要在严格按照修改后《刑事诉讼法》要求对重大案件进行讯问录音录像的同时,根据本地实际情况,逐步扩大讯问录音录像的案件范围,并抓紧建设数量充足、功能完善、设置规范的标准化讯问室,最终实现对所有刑事案件的讯问过程进行录音录像。东部地区和执法办案场所规范化建设基础较好的地区,要力争在2015年实现对全部刑事案件讯问过程录音录像的工作目标;中西部地区要进一步加强执法办案场所的规范设置和使用管理,力争在2016年实现上述目标;个别执法办案场所规范化建设基础薄弱的地区,要积极创造条件,加快工作进度,加大资金投入,力争在2017年实现上述目标。 各地执行中遇到的问题,请及时报部。 公安部 2014年9月5日 公安机关讯问犯罪嫌疑人录音录像工作规定

审讯室同步录音录像音频解决方案 +

1.什么是同步录音录像 所谓的同步录音录像就是对某一特定环境采用特定设备通过技术手段对环境现场进行音频视频同步记录。随着社会法治化的进步和社会对人性化办案的需求,犯罪嫌疑人的权益也越来越多的受到关注。为了保护犯罪嫌疑人和主审讯人员应有的权益,在对违法犯罪嫌疑人进行讯(询)问时实行全程同步录音录像,以保证讯(询)问的合法、公平、公正。 2.构成同步录音录像的最基本需求 够成同步录音录像的最基本要求包括了三大部分,前端采集,中间传输,与后端存储(指挥)根据系统的复杂性和不同环境的要求。有些看似后端存储的设备也是传输部分。比如需要用于远程同步的电脑主机,既能显示也是传输的某些部分。 2.1前端 前端部分包括了音视频采集设备,现场环境监视设备等。根据现场情况的不同,前端设备还可能配备支架,电源,云台等。 采集设备至少包括一个拾音器(音频采集)、两台摄像机(视频采集)。 环境监控设备至少配备一个温湿度显示屏。 2.2传输端 简单的传输设备主要包括了线缆、光端机等。按照系统的需求,部分系统传输设备还包括了电脑主机,网络摄像机无线发射机等等。 3.3后端 后端一般包括了存储和输出两个部分,存储包括了电脑主机、硬盘录像机、刻录机等。输出包括了显示器、喇叭(扬声器、耳机)、需要实现对讲功能的还包括了全向麦克风等设备。 3.系统 审讯室部分

审讯室部分为系统最前端也是最重要的部分,选择好的监控拾音器(摄像机)能如实的反映监控现场的真实情况。其中视频部分包括两个摄像机。摄像机A安装在角落。能看清楚整个审讯室的环境,必须如实反映当时现场的环境(能看到温湿度显示屏上的数据)。摄像机B必须能清楚的看到被审人的脸部表情和整体(如需了解被审人当时的情绪可多配备一个可多倍变焦摄像机)。音频部分至少配备一个高保真拾音器(推荐使用思正MX-K10数字拾音器),拾音器安装在被审人与审讯人员中间。能清楚的拾取审讯室内所有的对话。记录部分:一台笔记本电脑审讯人员,详细记录审讯过程。 审讯室音频详细接线图 前端接线是将拾音器接入网络摄像机(摄像机必须带有音频输入line in 端口)。再通过交换机接入后端的存储设备(输出设备)。 前端指挥中心

公安局高清同步录音录像审讯指挥系统解决方案316全解

公安局高清同步录音录像审讯指挥系统解决方 案

目录 第1章系统设计 (3) 1.1 需求分析 (3) 1.2 应用目标 (4) 1.3 参考标准 (4) 第2章系统详细设计 (6) 2.1 系统设计思路 (6) 2.2 系统整体架构 (6) 2.3 讯问室建设 (7) 2.3.1 前端设备部署 (7) 2.3.2 传输链路设计 (8) 2.3.3 主要设备介绍 (9) 2.4 询问室建设 (12) 2.4.1 前端设备部署 (12) 2.4.2 传输链路设计 (13) 2.4.3 主要设备介绍 (14) 第3章办案区监控系统设计 (17) 3.1 前端点位设计 (18) 3.1.1 视频监控系统点位部署 (18) 3.1.2 视频监控系统前端概述 (18) 3.1.3 视频监控前端设备介绍.............................. 错误!未定义书签。 3.2 视频存储设计 (19) 3.2.1 视频存储方案 (19) 3.2.2 存储架构设计 (20) 3.2.3 存储策略说明 (20) 3.2.4 存储容量计算 (20) 3.2.5 存储设备介绍 (21)

3.3 解码控制设计 (22) 第4章平台设计 (23)

第1章系统设计 1.1需求分析 近年来,犯罪嫌疑人翻供案件呈逐年上升趋势,许多被告人在庭审时对侦查阶段的口供进行更改或不认可;且可能出现被告人在庭审中指出,在侦查阶段所做的供述是讯问时刑讯逼供所致,致使法庭审理陷入尴尬,阻挠了司法机关对案件的顺利审理。有了讯问的全程录音录像,讯问的整个过程在法庭得以重现,就可以有效地抑制被告人的任意翻供,大大缩短法庭质证的时间,从而提高庭审效率;另一方面还能证明讯问程序的合法性,有利于法官对犯罪嫌疑人口供的客观真实性进行正确判断。 规范干警的执法行为全程同步录音录像的全程记录,使干警在如今办案中更加注意自己的形象,办案人员从衣着仪表到言谈举止也更加自律。在审讯前,办案人员也都能够自觉地做好审讯准备工作,制定详细的审讯提纲,并对审讯中可能出现的情况进行认真分析,拟定相应对策,对审讯过程中需出示的书证、物证,通盘考虑,精心策划。 改进并提高审讯过程中的方法和效率相对于讯问笔录这种固定证据的方式, 全程同步录音录像具有真实性强、稳定连续性高等明显的优势, 更能完整地反映讯问的过程和内容, 有效地克服了讯问笔录不连贯、不完整的缺点;同时全程同步录音录像实现了在审讯过程中办案指挥员对整个审讯工作的实时动态管理和监督,它通过协调资源,把现场讯问的侦查人员和后台的指挥人员紧密地结合起来,达到了内外互动、上下协作、整体联动,全面把握案件的效果。同时,全程同步录音录像可以适时调整审讯策略、思路、方法,从而实现案件的快速突破,有效地提高了审讯的效果和效率。现场指挥人员还可以通过现场同步录音录像画面,监督讯问人员的行为,及时发现和制止讯问人员可能发生的不文明办案行为,发现和防范办案过程中的不安全因素,消除安全隐患,从而确保整个讯问工作的安全有效。 保障犯罪嫌疑人和执法人员的双重权益严格了办案程序,强调审讯过程中的

音视频同步的方法及监控系统与制作流程

本技术公开了一种音视频同步的方法及监控系统,包括步骤:S1,采集音视频数据;S2,基于实时传输协议RTP传输音视频数据;S3,采用音视频同步技术处理数据。本技术基于实时传输协议RTP,采用音视频数据同步技术解决了现有技术中存在的音视频数据不同步以及音频处理效果不佳问题,能够播放同步的声音和图像数据,使得声音和图像数据更加真实、流畅。 技术要求 1.一种音视频同步的方法,其特征在于,其包括步骤: S1,采集音视频数据;

S2,基于实时传输协议RTP传输音视频数据; S3,采用音视频同步技术处理数据; S3中,音视频同步控制在数据接收端实施;音视频同步技术以音频为主媒体,视频为从媒体,接收音视频数据时设置缓冲区,通过比较音视频数据包的时间戳判断同步关系,实现音视频数据同步。 2.根据权利要求1所述的一种音视频同步的方法,其特征在于,所述步骤S3中,采用队列作为缓冲区,缓存音视频数据。 3.根据权利要求1所述的一种音视频同步的方法,其特征在于,所述步骤S3中,对于音频缓存,使用iOS系统提供的AudioQueue框架的队列处理音频数据。 4.根据权利要求1所述的一种音视频同步的方法,其特征在于,所述步骤S3中,音频队列的长度至少为3。 5.根据权利要求1所述的一种音视频同步的方法,其特征在于,所述步骤S3中,音视频数据的时间差在允许范围内,则认为音视频同步;否则认为音视频不同步,丢弃视频帧。 6.根据权利要求1所述的一种音视频同步的方法,其特征在于,所述步骤S3中,采用H264硬编解码技术处理音视频数据。 7.一种音视频同步的监控系统,其特征在于,包括设备端、服务器端和客户端,所述设备端通过互联网和防火墙与服务器端连接,所述客户端通过WiFi或4G或4G+网络与路由器连接,所述路由器通过互联网与服务端连接; 所述设备端采集音视频数据,并将音视频数据压缩编码、打包后通过互联网发送到服务器端; 所述服务器端包括流媒体服务器和SIP信令服务器,流媒体服务器将设备端采集到的音视频数据通过互联网和WiFi或4G或4G+网络转发到客户端,SIP信令服务器负责转发系统中的信令消息,同时负责管理客户端中各个终端设备,流媒体服务器通过ICE与SIP服务器进行通信;

侦查讯问全程同步录音录像的证据属性及其规范

侦查讯问全程同步录音录像的证据属性及其规范 潘申明魏修臣* [内容摘要]检察机关讯问犯罪嫌疑人全程同步录音录像在刑事诉讼中 具有证据的属性, 而且不会突破现行法定证据种类。赋予全程同步录音录像证据资格,必须规范全程同步录音录像的制作过程,确立统一的技术规范、确定事前告知义务、完善始后全程和档案保存制度等。全程同步录音录像作为证据,基 于其特殊性, 应该在示证提请权、举示决定权、示证过程等方面作出特别规定。[关键词]检察机关侦查讯问全程同步录音录像证据属性 2006年3月1日,最高人民检察院颁布实施《人民检察院讯问职务犯罪嫌疑人实行全 程同步录音录像的规定(试行)》(以下简称《全程同步录音录像规定》),三年多来,侦查讯 问犯罪嫌疑人全程同步录音录像在固定关键证据等方面发挥了很大作用。〔1〕为规范这项工 作,最高人民检察院提出了四条原则:全程同步、程序规范、客观真实和严格保密原则。但是, 对于全程同步录音录像能否作为证据向法庭出示,被告人及其辩护人以及其他诉讼参与主体是否可以请求出示全程同步录音录像,法庭能否要求公诉机关出示全程同步录音录像,如果可以出示,又应在多大程度上向法庭出示,是否可以向旁听群众当庭出示等问题上,学界和司法实务界争议较大,因而,笔者拟就上述这些问题作一探讨,以求教于方家。 一、全程同步录音录像应具备刑事诉讼证据属性 全程同步录音录像制度在实践进行之初,只是作为一项保存证据的方式,以防止犯罪嫌疑人随意翻供。由于全程同步录音录像具有能还原讯问过程原貌的特点,其逐渐成为在法庭上再现侦查讯问过程是否合法、规范,被告人在侦查阶段供述是否自愿、真实、可信的重要方式。但是这种在法庭上展示的录音录像,其性质应如何界定还需要进行推敲。笔者认为,从法律上赋予全程同步录音录像以证据属性比较妥适。 ·司法时评· *〔1〕潘申明,宁波市北仑区人民检察院,法学博士;魏修臣,宁波市北仑区人民检察院,法学硕士。 王新友:《最高检王振川:全程同步录音录像将“根治”刑讯逼供》,资料来源:http ://review.jcrb.com /200711/ca653416.htm ,访问日期为2010年9月12日。

录音录像的认定

【检察实务】准确认识全程同步录音录像的性质 最高人民检察院于2005年出台《人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像的规定(试行)》以后,各级检察机关积极落实,完善相关配套措施,使全程同步录音录像工作逐步走上正轨。实践证明,侦查讯问实行同步全程录音录像能够有效遏制违法办案现象,对提升案件质量,切实保障人权有着积极的不可替代的作用。修改后刑事诉讼法充分肯定了这项工作机制的重要意义,以立法形式正式将其确立为法定程序,这就对我们今后开展全程同步录音录像工作提出了更高的要求。 与法定程序应当具备的严谨、严肃、合法、规范等要求相对照,目前职务犯罪侦查工作讯问全程同步录音录像工作仍然存在一些问题,比较典型的有两个方面。 一是“摆拍”现象。为了提高审讯录像当庭播放的效果,侦查人员通常在已经制服犯罪嫌疑人的情况下,预先设定场景和“剧本”,像拍摄电影那样,重新把讯问过程“表演”一遍,似乎是为了拍摄而开展讯问。 二是讯问不规范问题。一旦犯罪嫌疑人不配合审讯工作,很多侦查人员面对摄像机就会感到无所适从。有的侦查人员遇到这种情况容易起急,用语不文明;有的侦查人员不敢大胆开口,话说重了担心是“威胁”对方,替他说出来又担心是“指供”,造成讯问语言和讯问方式不规范。 形成这些问题的原因,既有人员、设备保障的滞后,也有侦查人员经验的不足,但最根本的是我们对于侦查讯问、录音录像、讯问笔录这些相互关联又相互区别的概念和事实存在认识上的误区。要改进这种状况,提高讯问全程同步录音录像工作的实际效能,首要的问题是我们必须对其本质属性和客观规律有一个清晰的认识。 准确认识全程同步录音录像资料的证据属性 在侦查讯问过程中进行全程录音录像,最初目的是将其作为一种证据保存方式,防止犯罪嫌疑人随意翻供和侦查人员违法取证。检察机关在职务犯罪侦查过程中逐步推广这一措施以后,实际效果非常明显,理论界和实务界都给予了高度评价,将同步录音录像资料作为一种独立的证据类型直接运用于刑事诉讼的呼声越来越高,甚至有观点认为,同步录音录像完全可以替代讯问笔录的作用。那么,全程同步录音录像是否可以作为独立的证据类型呢? 在法定证据制度下,证据种类是根据证据事实的表现形式在法律上对证据进行的分类。 从形式上来讲,讯问全程同步录音录像资料是以录音、录像、计算机等高科技设备来记录并显示证据内容证明相应事实,应当属于视听资料。但在证据学理论中,按照记录的目的和用途,视听资料又大致可以分为“现场记录”和“调查记录”两大类型,两者在证据法上的地位与作用则有着本质区别。 采用录音、录像直接记录人的言谈举止与现场环境称为现场记录,使用音像摄录设备对证据调查过程加以记录的方式称为调查记录,讯问全程同步录音录像属于典型的调查记录。与现场记录相比,调查记录的内容具有明显的预定性与选择性,以证据固定、证据保全为主要目的。从本质上来说,现场记录是生活实况的忠实反映,反映的内容无法被其他证据类型

讯问犯罪嫌疑人实行全程同步录音录像工作中存在的问题及对策

讯问犯罪嫌疑人实行全程同步录音录像工作中存在的问题 及对策 检察机关讯问职务犯罪嫌疑人实行顺泰伟成全程同步录音录像,在保障犯罪嫌疑人人权、规范检察机关办案、固定办案证据和减少被告人当庭翻供等方面起到了积极作用,但是由于同步录音录像工作是一项新兴的检察业务,实际工作中存在一些问题和不足,这些问题和不足制约了当前顺泰伟成同步录音录像工作的长足发展,需要认真研究并予以解决。 一、当前同步录音录像工作存在的主要问题 1、部分侦查人员对顺泰伟成同步录音录像工作的认识存在误区 认为对讯问过程实施不间断的顺泰伟成同步录音录像是高检院的要求,做了就符合规定不做就不符合规定,表现在:一是认为案件只要进行了同步录音录像就可以确保万无一失,对其他证据的搜集不重视或者重视不够的万能论;二是认为同步录音录像作为一种证据的固定方式,对职务犯罪事实认定起不了多大作用的无用论。如果犯罪嫌疑人在法庭上翻供,同步录音录像是解决不了实质问题的,A/V/S/T/CN而且会成为侦查过程的一种累赘,过于频繁地录音录像不仅耗费大量人力和财力,还会影响侦查进程;三是,适用对象不明确,认为只要是侦查就应该同步录音录像。顺泰伟成同步录音录像是指人民检察院直接受理侦查的职务犯罪案件,每次讯问犯罪嫌疑人时,对讯问过程实施不间断录音录像的一项专门技术工作。如果询问证人需要录音录像的应当事先征得证人同意。 2、同步录音录像存在如何保密的问题 犯罪嫌疑人担心交代犯罪事实涉及到他人时顺泰伟成同步录音录像形成的资料泄密或对外播放而受到打击报复,因而不敢说、拒绝说或作无罪辩解。顺泰伟成同步录音录像中保密工作还没有具体的规章制度,A/V/S/T/CN而且顺泰伟成同步录音录像系统技术性强、专业化高,涉密存储载体的制作、使用及管理需要严格的保密措施,但现在没有统一规范的安全防范措施。录音录像材料具有较大的被伪造的可能,而且还要在侦查、批捕、起诉、审判等环节进行移交,涉及人员多,需要严格的保密防范措施,防止存储载体被篡改或泄密,但在实践中缺乏可操作性规范。 3、实际操作和硬件设施与同步录音录像的要求存在差距 根据规定,顺泰伟成同步录音录像要与讯问过程实行同步摄录,录制结束后立即制作录音、录像资料,讯问人员和犯罪嫌疑人确认后当场对原件装入人民检察院讯问顺泰伟成全程同步录音录像密封袋中,由录制人员、讯问人员、被讯问人三方封签,由被讯问人在封口处骑缝摁指印。而当犯罪嫌疑人在被羁押的状态下到看守所接受讯问,或者因特别情形在临时场所进行同步录音录像,不但录像设备而且影像和声音效果、光盘刻制、确认的程序也不能满足工作的要求。办案过程中,有的办案人员受各种主客观因素的影响,仅将全程同步录音录像视为一种工具,随意化、不规范现象较为突出,主要表现为:一是突破犯罪嫌疑人心理防线获取到口供后才实行录音录像;二是只固定有罪证据,对无罪供述则不进行录音录像;三是单次讯问只对部分讯问过程进行录音录像A/V/S/T/CN以代替该次讯问全过程。四是同步录音录像不规范,比如顺泰伟成全程同步录音录像起始时间和讯问室温度、湿度、时间以及在讯问过程中使用的证据、被讯问人辨认书证、物证、核对笔录、签字、摁手印的画面切换不符合要求。 4、部分侦查人员对同步录音录像驾驭能力不足 主要表现在:一是有的侦查人员讯问中存在着装随意、举止不端、言语不文明等不规范的办案行为;二是有些侦查人员驾驭讯问局面的能力不足,对案件突破和特殊情况的处理的应对策略不充分;三是讯问笔录所记载的内容与顺泰伟成同步录音录像资料上所反映的内容存在

rtp音视频同步问题解决方法

rtp音视频同步问题解决方法 rtp同步方法的思考 由于音视频流是以两条独立的数据流在网络上传输的,如果网络质量相当差,那么在接收端收到的音视频数据流就有可能不是同步的了,为了克服这种不同步的现象,需要添加同步机制。的同步机制是使用开源库jrtplib3.7.1来实现的,严格遵守rtp协议标准。 解决的方案如下: 当有数据需要发送时,往数据中加入时间戳,在接收端,读取时间戳,进行比较,如果相同或相差很近,就提交播放,如果其中一个时间戳更大,就等待。 如果网络质量很差,那么存在两种不同步的情况: 1. 对于单条数据流来说,如果网络质量很差,可能出现数据流的接收不流畅,如果没有做流畅处理,那么就可能出现抖动现象,这需要使用rtp中的时间戳解决。 2. 对于多条数据流来说,如果网络质量很差,可能出现本应该同时播放的数据帧没有在同一时间到达,需要做同步处理。 解决第1个问题的方法是向每个发送的数据包加上时间戳,在rtp库中,时间戳表示在打包数据段中第一个采样所对应的时间,时间戳的启始值是随机的,后续的时间戳是在前一个时间戳上的增量,在SendPacket中的时间戳参数表示的是时间戳增量,所以数据流的同步需要计算出时间戳增量。 对于音频数据,由于音频数据的采样率是8000HZ,所以每采样一次需要时间是1/8000s,由于是每20ms封包一次,所以时间戳的增量是(20*10**-3)*8000=160。 对于视频数据,由于视频数据的采样率是90000Hz,所以每采样一次需要时间是1/90000s,如果帧率是25帧/s,所以时间戳增量是90000/25=3600。 在发送端,每发送一个数据包,都打上该数据包对于的时间戳值,只需要向SendPacket 的最后个参数传递时间戳增量,rtp库会自动算出时间戳,并加到发送的rtp数据包首部里边。 在接收端,当收到一个数据包时,获取该rtp数据包的时间戳值,计算出与前一个数据包的时间戳值的差值,乘以该媒体流的时间戳单位,就得出了当前数据包与前一个数据包之间的间隔的打包时间T。所以只要保证在与前一个数据包被提交过后T时间后再提交当前接收到的数据包,那么在rtp层就解决了上边提出的第一个问题。

同步录音录像管理制度

同步录音录像管理规定 第一条为规范我院讯问职务犯罪嫌疑人实行全程同步录音录像的技术工作,依据《人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像的规定(试行)》、《人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像的技术规范(试行)》和《人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像技术工作流程(试行)》制定本规定。 第二条办案部门讯问职务犯罪嫌疑人需要进行同步录音录像时,首先通知检察技术部门做好同步录音录像准备工作,然后填写《人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像工作通知单》。 第三条检察技术部门在接到办案部门的《工作通知单》后,对其进行审查,符合相关规定后,填写《人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像受理登记表》,技术部门批准后,指派技术人员执行同步录音录像工作。 第四条录制人员在接受录制任务后,应当做好录制准备工作,对讯问场所及设备进行检查和调试。因特殊原因无法录制的,应当及时告知办案部门。 第五条录制的起止时间,以被讯问人员进入讯问场所开始,以被讯问人核对讯问笔录、签字捺印手印结束后停止。 第六条录制人员在录制过程中,应认真填写《人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像工作说明》,详细记录录制过程及系统运行情况。

第七条录制结束后,录制人员应当将录制资料的正本交讯问人员、被讯问人确认,当场装入同步录音录像资料密封袋,由录制人员、讯问人员、被讯问人三方封签,由被讯问人在封口处骑缝按捺手印。 第八条案件侦查终结后,技术部门应当将本案《人民检察院讯问全程同步录音录像受理登记表》、《人民检察院讯问全程同步录音录像工作说明》等文书材料制作全程同步录音录像技术协作卷宗予以保存。 第九条技术部门应当将全程同步录音录像录制资料正本存放于专门的录制资料档案柜内,长期保存,并做到防尘、防潮、避免高温和挤压,以磁介质存储的资料要存放在防磁柜内。 第十条同步录音录像的其他相关工作按照《人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像的规定(试行)》、《人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像的技术规范(试行)》和《人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像的技术规范(试行)》执行。 秦皇岛市人民检察院检察技术处

侦查讯问全程同步录音录像的证据属性

侦查讯问全程同步录音录像的证据属性 随着新的刑事诉讼法的出台,对同步录音录像制度作出了较先前全面的规定,但是只是指出在对犯罪嫌疑人进行刑事询问时可以使用录像,但没有明确指出这种同步录音录像是否能够在刑事诉讼中当作证据使用;如果能使用,可以作为哪种证据使用;对于询问笔录,全程同步录音录像又与之有着怎样的关系;当两者的记录内容不完全一致时,又应该以哪种形式的记录为主要参考。针对上述不明确的问题,新出台的刑事诉讼法也没有给予明确的规定,本文就针对这此问题进行相应的讨论,从而对我国侦查询问的同步录音录像在证据地位上的定位进行明确。 1.侦查询问全程同步录音录像的证据属性 在实践的初期阶段,全程同步录音录像制度仅仅是一种对证据进行保存的形式,其目的是为了防止犯罪嫌疑人随意翻供。由于全程同步录音录像能够将询问的全过程真实地反映出来,它逐渐成为了在法庭上将侦查询问过程再现出来的重要应用方式,能够真实地再现询问过程的合法性和规范性,以及在侦查过程中被告人是否为自愿、是否真实可信。但是对于这种录音录像,法律没有对其性质进行明确的界定,需要相关研究者进行认真的推敲,有研究者认为,从法律上赋予其证据属性是作为适当的方式。 1.1赋予其证据属性的原因 在我国的刑事诉讼法中,笔录是对各种证据的最重要的承载方式,

具有证据属性的非常重要的地位,也是刑事诉讼中最为常见的证据。而全程同步录音录像作为能够对全程的询问过程进行真实的记载的方式,具有与笔录相似的证据承载作用。侦查笔录能够作为证据的原因是其能够对询问过程中的主要活动的实际情况、侦查人员的提问内容和询问方式以及犯罪嫌疑人无罪的辩解和有罪的陈述进行如实的记载,而且比较准确和全面地将某事实的客观存在真实地保存起来。而对于全程同步录音录像来说,笔录具有的这此优势,它完全具有而且相比于笔录还具有更加便捷和可靠的优势,绝不逊色。 首先,全程同步录音录像所记录的内容不仅全面,而且更加完整,它能够将询问过程以三维的呈现方式展现出来,不仅可以讲询问过程中陈述的内容完整得记录下来,而且包括过程中的动作和表情都如实地记录下来,记录内容更加全面和真实。而相比之下,笔录就只能够将询问过程中的询问内容记录下来。 其次,全程同步录音录像能够对司法人员进行一定程度的监督。相比于静态记录的笔录来说,全程同步录音录像能够实现对询问现场的动态记录,不存在其制作过程中相关人员的主观意向的情况,大大缩小了违法操作的空间。 最后,由于全程同步录音录像具有即时性的特点,能够使整个询问过程不受笔录记录者的限制,随时记录,因此,全程同步录音录像能够提高整个询问过程的效率。 1.2对全程同步录音录像的证据类型的确定 我国刑事诉讼法所规定的证据类型有7种,对于全程同步录音录像

人民检察院讯问全程同步录音录像系统设备技术要求(试行)

人民检察院讯问全程同步录音录像系统设备技术要求(试行) 最高人民检察院办公厅发 2006年7月3日 一、范围 本技术要求是人民检察院建设讯问全程同步录音录像系统的参照标准,适用于固定场所录音录像系统的新建、扩建、改建以及在临时场所录音录像的一般配置要求。 二、系统功能要求 (一)总体要求 1.系统设备在长时间不间断的情况下,稳定运行。 2.系统在录像过程中,支持多路音视频同步输入、输出。 3.录音录像资料压缩方式应采用国际标准MPEG-2或MPEG-4。 基于上述标准下的企业标准,应在光盘输出时,集成自动播放软件,使录音录像资料回放具有通用性和可操作性。 4.系统支持双份光盘同期刻录生成。 5.系统应预留网络接口,具有相应的可扩展性和兼容性。 6.便携式设备应具有较高的稳定性,功能性参数设计应具有 一定的开放性。 7.摄像机应能清晰采集到现场的图像,图像质量应达到四级 (BG50198-94表4.3.1-1图像质量主观评价的五级损伤制评定)以上。对于低照度和环境干扰特别恶劣的现场,其图像质量不低于三级。 (二)前端部分要求 1.固定场所安装的摄像机可分别选用带有自动光圈定焦镜头 和自动光圈电动变焦镜头的摄像机,对于装有电动变焦镜头的摄像机应配有可以实现水平与垂直转动的万向云台。 2.视频采集设备应能适应现场的照明条件。照明光源应采用 三基色冷光源。 3.固定场所各类线缆均宜采用暗敷方式,计算机网络与音视 频信号线、电源线应严格遵守国家有关标准,分开布线,有效隔离。在做吊顶、墙面、地板前,预先做好视频、音频、空调、照明各种管线的预埋。音、视频设备端线缆应做接地处理,避免与其它信号线相互之间干扰。 4.讯问室要做隔音吸音处理,通风管道或通风口应采取软体 管道或加装消声器。 (三)传输部分要求 1.信号传输电缆应有防泄漏措施,无线及微波传送应有加密 措施。 2.网络传输时系统应具备网络传输接口,能满足远程图像、 语音、数据传输的要求。 3.需要专线网络传输,应依托检察专线网并符合高检院有关

同步录音录像系统设备清单

同步录音录像系统设备清单

便携式同步录音录像系统设备清单

人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像系统建设规范(试行) 本规范是人民检察院建设讯问职务犯罪嫌疑人实行全程同步录音录像系统的 参照标准,适用于规范新建、扩建和改建的固定场所录音录像系统和临时场所录音录像设备。 一、系统构成及要求 全程同步录音录像系统可由模拟与数字混合或全数字音视频监控系统构成。系统一般由前端、传输、控制和记录显示四部分构成。 1.前端部分:包括彩色摄像机及与之配套的辅助设备或球形一体化摄像机。 2.传输部分:包括视频同轴电缆、音频屏蔽电缆、通信控制电缆或光缆、网线、光纤传输设备、无线传输设备和基于网络的数字传输设备。 3.控制部分:包括音视频切换器、云台镜头控制器、操作键盘、调音台、各类控制通信接口、电源以及与之配套的控制台等硬件设备和能够实现以上功能的软件。 4.记录显示设备:主要包括数字硬盘录像设备、光盘刻录设备、监视器和显示屏等。 (一)总体要求 1.系统在长时间不间断的情况下能稳定运行。 2.系统在录像过程中,支持多路音视频同步输入、输出。 3.录音录像资料压缩方式应采用国际标准MPEG-2、MPEG-4AVC/H.264或国内标准AVS,图像分辨率应不低于704×576。基于上述标准下的企业标准,应在光盘输出时,集成自动播放软件,使录音录像资料回放具有通用性和可操作性。经网络实时传输的图像,分辨率应不低于352×288,帧频应不低于25帧/秒。 4.系统支持双份光盘同期刻录生成。 5.系统应预留网络接口,具有相应的可扩展性和兼容性。 6.便携式设备应具有较高的稳定性,功能性参数设计应具有一定的开放性。 7.摄像机应能清晰采集到现场的图像,图像质量应达到四级(GB50198-94表4.3.1-1图像质量主观评价的五级损伤制评定)以上。对于环境干扰特别恶劣的现场,应采取必要的抗干扰措施,并保证其图像质量不低于四级。

浅析DirectShow音视频同步解决完整方案

浅析DirectShow音视频同步解决完整方案 多媒体处理,不可避免地要解决音视频的同步问题。DirectShow是怎么来实现的呢?我们一起来学习一下。 大家知道,DirectShow结构最核心的部分是Filter Graph Manager:向下控制Graph中的所有Filter,向上对τ贸绦蛱峁┍喑探涌凇F渲校現ilter Graph Manager实现的很重要一个功能,就是同步音视频的处理。简单地说,就是选一个公共的参考时钟,并且要求给每个Sample都打上时间戳,Video Renderer或Audio Renderer根据Sample的时间戳来控制播放。如果到达Renderer的Sample晚了,则加快Sample的播放;如果早了,则Renderer等待,一直到Sample时间戳的开始时间再开始播放。这个控制过程还引入一个叫Quality Control的反馈机制。 下面,我们来看一下参考时钟(Reference Clock)。所有Filter都参照于同一个时钟,才能统一步调。DirectShow引入了两种时钟时间:Reference time和Stream time。前者是从参考时钟返回的绝对时间(IReferenceClock::GetTime),数值本身的意义取决于参考时钟的内部实现,利用价值不大;后者是两次从参考时钟读取的数值的差值,实际应用于Filter Graph内部的同步。Stream time在Filter Graph不同状态的取值为: 1. Filter Graph运行时,取值为当前参考时钟时间减去Filter Graph启动时的时间(启动时间是通过调用Filter上的IMediaFilter::Run来设置的); 2. Filter Graph暂停时,保持为暂停那一刻的Stream time; 3. 执行完一次Seek操作后,复位至零; 4. Filter Graph停止时,取值不确定。 那么,参考时钟究竟是什么东西呢?其实,它只是一个实现了IReferenceClock接口的对象。也就是说,任何一个实现了IReferenceClock接口的对象都可以成为参考时钟。在Filter Graph中,这个对象一般就是一个Filter。(在GraphEdit中,实现了参考时钟的Filter上会显示一个时钟的图标;如果同一个Graph中有多个Fiter实现了参考时钟,当前被Filter Graph Manager使用的那个会高亮度显示。)而且大多数情况下,参考时钟是由Audio Renderer这个Filter提供的,因为声卡上本身带有了硬件定时器资源。接下来的问题是,如果Filter Graph中有多个对象实现了IReferenceClock接口,Filter Graph Manager是如何做出选择的呢?默认的算法如下: 1. 如果应用程序设置了一个参考时钟,则直接使用这个参考时钟。(应用程序通过IMediaFilter:: SetSyncSource设置参考时钟,参数即为参考时钟;如果参数值为NULL,表示Filter Graph不使用参考时钟,以最快的速度处理Sample;可以调用IFilterGraph:: SetDefaultSyncSource来恢复Filter Graph Manager默认的参考时钟。值得注意的是,这时候的IMediaFilter接口应该从Filter Graph Manager上获得,而不是枚举Graph中所有的Filter并分别调用Filter上的这个接口方法。) 2. 如果Graph中有支持IReferenceClock接口的Live Source,则选择这个Live Source。 3. 如果Graph中没有Live Source,则从Renderer依次往上选择一个实现IReferenceClock接口的Filter。

人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像的规定(试行)34737

人民检察院讯问职务犯罪嫌疑人实行全程同步录音录像的规定(试行) (2005年11月1日最高人民检察院第十届检察委员会第四十三次会议通过) 第一条为进一步规范执法行为,依法惩治犯罪,保障人权,提高执法水平和办案质量,根据人民检察院直接受理侦查职务犯罪工作实际,制定本规定。 第二条人民检察院讯问职务犯罪嫌疑人实行全程同步录音、录像,是指人民检察院办理直接受理侦查的职务犯罪案件,每次讯问犯罪嫌疑人时,应当对讯问全过程实施不间断的录音、录像。 第三条讯问全程同步录音、录像,实行讯问人员与录制人员相分离的原则。讯问由检察人员负责,不得少于二人;录音、录像一般由检察技术人员负责。经检察长批准,也可以指定其他检察人员负责录制。对录制人员适用刑事诉讼法有关回避的规定。 第四条讯问犯罪嫌疑人需要由检察技术人员录音、录像的,检察人员应当填写《录音录像通知单》,写明讯问开始时间、地点等情况送检察技术部门。检察技术部门接到《录音录像通知单》后,应当指派技术人员实施。 第五条讯问在押犯罪嫌疑人,除法定情形外,应当在看守所进行。讯问未羁押的犯罪嫌疑人,除客观原因外,应当在检察院讯问室进行。 第六条讯问开始时,应当告知犯罪嫌疑人将对讯问进行全程同步录音、录像,告知情况应在录音、录像中予以反映,并记载于讯问笔录。 第七条全程同步录像的,摄制的图像应当反映犯罪嫌疑人、检察人员、翻译人员及讯问场景等情况,犯罪嫌疑人应当在图像中全程反映,并显示与讯问同步的时间数码。在检察院讯问室讯问的,应当显示温度和湿度。 第八条讯问犯罪嫌疑人时,检察人员一般要着检察服,做到仪表整洁,举止严肃、端庄、文明。严

禁刑讯逼供或者使用威胁、引诱、欺骗等非法方法进行讯问。 第九条对使用少数民族语言文字或者不通晓当地语言文字的犯罪嫌疑人进行讯问的,应当有翻译人员在场翻译。 讯问聋、哑的犯罪嫌疑人,应当有通晓聋、哑手势的人在场。 第十条讯问过程中,需要出示书证、物证等证据的,应当当场出示让犯罪嫌疑人辨认,并对辨认过程进行录音、录像。 第^一条讯问过程中,因技术故障等客观情况不能录音、录像的,一般应当停止讯问,待故障排除后再次讯问。讯问停止的原因、时间和再行讯问开始的时间等情况,应当在笔录和录音、录像中予以反映。 不能录音、录像的客观情况一时难以消除又必须继续讯问的,经检察长批准,并告知 犯罪嫌疑人后可以继续讯问。未录音、录像的情况应当在笔录中予以说明,由犯罪嫌疑人签 字确认。 第十二条讯问结束后,录制人员应当立即将录音、录像资料复制件交给讯问人员,并 经讯问人员和犯罪嫌疑人签字确认后当场对录音、录像资料原件进行封存,交由检察技术部 门保存。 讯问结束后,录制人员应当及时制作全程同步录音、录像的相关说明,经讯问人员和犯罪嫌疑人签字确认后,交由检察技术部门立卷保管。 相关说明应当反映讯问的具体起止时间,参与讯问的检察人员、翻译人员及录制人员的姓名、职务、职称,犯罪嫌疑人姓名及案由,讯问地点等情况。讯问在押犯罪嫌疑人的,讯问人员应当在相关说明中注明提押和还押时间,由监管人员和犯罪嫌疑人签字确认。对犯罪嫌疑人拒绝签字的,应当在相关说明中注明。

公安局高清同步录音录像审讯指挥系统解决方案

公安局高清同步录音录 像审讯指挥系统解决方 案 目录 第1 章系统设计 (3) 1.1 需求分析 (3) 1.2 应用目标 (4) 1.3 参考标准 (4) 第2 章系统详细设计 (6) 2.1 系统设计思路 (6) 2.2 系统整体架构 (6) 2.3 讯问室建设 (7) 2.3.1 前端设备部署 (7) 2.3.2 传输链路设计 (8) 2.3.3 主要设备介绍 (9) 2.4 询问室建设 (12)

2.4.1 前端设备部署 (12) 2.4.2 传输链路设计 (13) 2.4.3 主要设备介绍 (14) 第3 章办案区监控系统设计 (17) 3.1 前端点位设计 (18) 3.1.1 视频监控系统点位部署 (18) 3.1.2 视频监控系统前端概述 (18) 3.1.3 视频监控前端设备介绍................... 错误!未定义书签。 3.2 视频存储设计 (19) 3.2.1 视频存储方案 (19) 3.2.2 存储架构设计 (20) 3.2.3 存储策略说明 (20) 3.2.4 存储容量计算 (20) 3.2.5 存储设备介绍 (21) 3.3 解码控制设计 (22) 第4 章平台设计 (23)

第1章系统设计 1.1 需求分析 近年来,犯罪嫌疑人翻供案件呈逐年上升趋势,许多被告人在庭审时对侦查阶段的口供进行更改或不认可;且可能出现被告人在庭审中指出,在侦查阶段所做的供述是讯问时刑讯逼供所致,致使法庭审理陷入尴尬,阻挠了司法机关对案件的顺利审理。有了讯问的全程录音录像,讯问的整个过程在法庭得以重现,就可以有效地抑制被告人的任意翻供,大大缩短法庭质证的时间,从而提高庭审效率;另一方面还能证明讯问程序的合法性,有利于法官对犯罪嫌疑人口供的客观真实性进行正确判断。 规范干警的执法行为全程同步录音录像的全程记录,使干警在如今办案中更加注意自己的形象,办案人员从衣着仪表到言谈举止也更加自律。在审讯前,办案人员也都能够自觉地做好审讯准备工作,制定详细的审讯提纲,并对审讯中可能出现的情况进行认真分析,拟定相应对策,对审讯过程中需出示的书证、物证,通盘考虑,精心策划。 改进并提高审讯过程中的方法和效率相对于讯问笔录这种固定证据的方式, 全程同步录音录像具有真实性强、稳定连续性高等明显的优势, 更能完整地反映讯问的过程和内容, 有效地克服了讯问笔录不连贯、不完整的缺点;同时全程同步录音录像实现了在审讯过程中办案指挥员对整个审讯工作的实时动态管理和监督,它通过协调资源,把现场讯问的侦查人员和后台的指挥人员紧密地结合起来,达到了内外互动、上下协作、整体联动,全面把握案件的效果。同时,全程同步录音录像可以适时调整审讯策略、思路、方法,从而实现案件的快速突破,有效地提高了审讯的效果和效率。现场指挥人员还可以通过现场同步录音录像画面,监督讯问人员的行为,及时发现和制止讯问人员可能发生的不文明办案行为,发现和防范办案过程中的不安全因素,消除安全隐患,从而确保整个讯问工作的安全有效。 保障犯罪嫌疑人和执法人员的双重权益严格了办案程序,强调审讯过程中的全程同步录音录像,规定在审讯过程中实行犯罪嫌疑人权利义务告知及全程同步录音录像告知制度,从而确保了规范办案、文明办案和安全办案。如此,既规范了办案人员审讯行为,提高了执法水平,防止出现程序违法、程序疏漏和刑讯逼供的行为,又遏制了犯罪嫌疑人翻供的侥幸心理,有效地阻止了庭审犯罪嫌疑人的翻供,也避免了办案人员被诬告和陷害,最终使犯罪嫌疑人和干警的合法权益得到了有效保障。

相关主题