采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,对一个avi(wmv2+mp3)视频先解码然后在编码成一个MP4(h264+aac)的视频,怎么做视音频同步,我转出来的音频比视频快一些,不知道怎么把它们同步保存到文件中。课程里面的同步我看了,是播放器的,那么,我保存成文件应该在什么地方比较他们的时间戳呢,解码之前?解码之后重新编码之前?编码之后?
播放器的同步与写成文件是类似的,在编码之后把pts 和dts 设置进去就好了
老师能不能写个简单的demo,我现在是根据av_frame_read得到包,然后判断是音频还是视频,然后对其解码,解码完之后编码然后写入文件, if (AVMEDIA_TYPE_VIDEO == type) { //先对其进行解码,然后在编码,在编码之前先进行pts的转换 ret = avcodec_decode_video2(stream_ctx[stream_index].dec_ctx, frame, &got_frame, &packet); if (ret < 0) { //说明解码失败,可以丢弃某些帧 av_frame_free(&frame); av_log(NULL, AV_LOG_ERROR, "Decoding failed\n"); break; } if (got_frame) { //在这个函数进行编码和解码 ret = encode_video(frame, stream_index); if (ret < 0){ break; } else if (ret == 1){ goto end; } } else { av_frame_free(&frame); av_log(NULL, AV_LOG_ERROR, "got_frame video is null\n"); } } else if (AVMEDIA_TYPE_AUDIO == type) { //同样步骤处理音频 } 如果我在编码后比较两者的pts值,应该怎么操作?
在咱们群里的共享空间里有一个demo,你可以找找, 好像是以trans 开头的
登录后可查看更多问答,登录/注册
学好FFmpeg核心技术,做高效,高薪,有竞争力的音视频工程师
4.9k 7
4.9k 3
1.8k 12
173 12
41 12