xutch 发表于 2017-3-5 18:00:37

linux下安装的FFMPEG,播放视频有点问题

在linux(虚拟机)下安装的ffmpeg,编译安装的,其他的编解码库的话只安装了x264。 用ffplay播放视频总是绿屏。虚拟机的原因?ffmpeg --version信息如下:
ffmpeg -version
ffmpeg version 2.2.16
built on Mar5 2017 12:36:18 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)
configuration: --enable-shared --disable-static --enable-memalign-hack --enable-libx264 --enable-gpl --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --enable-pthreads
libavutil      52. 66.100 / 52. 66.100
libavcodec   55. 52.102 / 55. 52.102
libavformat    55. 33.100 / 55. 33.100
libavdevice    55. 10.100 / 55. 10.100
libavfilter   4.2.100 /4.2.100
libswscale      2.5.102 /2.5.102
libswresample   0. 18.100 /0. 18.100
libpostproc    52.3.100 / 52.3.100




孙悟空 发表于 2017-3-6 11:30:15

git clone git://source.ffmpeg.org/ffmpeg.git 用最新版本试试看

xutch 发表于 2017-3-14 17:15:53

孙悟空 发表于 2017-3-6 11:30
git clone git://source.ffmpeg.org/ffmpeg.git 用最新版本试试看

谢谢回复

xutch 发表于 2017-3-14 17:19:13

孙悟空 发表于 2017-3-6 11:30
git clone git://source.ffmpeg.org/ffmpeg.git 用最新版本试试看

再请教您一个问题啊:

我将内存中的H264数据封装成MP4文件;得到的帧率总是设置的一半,这是为什么?
(不是直接读h264文件,而是内存中把一个NAL作为一个Packet),对pts的设置如下:
if (packet.pts == AV_NOPTS_VALUE){
                //Write PTS
               
                //Duration between 2 frames (us)
                int64_t calc_duration = (double)AV_TIME_BASE / frameRate;
                //Parameters
                packet.pts = (double)(frame_index*calc_duration) / (double)(av_q2d(pStream->time_base)*AV_TIME_BASE);
                packet.dts = packet.pts;
                packet.duration = (double)calc_duration / (double)(av_q2d(pStream->time_base)*AV_TIME_BASE);
                packet.pos = -1;
                packet.stream_index = pStream->index;
                frame_index++;
                printf("Write 1 Packet. size:%5d\tpts:%lld\n", packet.size, packet.pts);
                if (av_interleaved_write_frame(pFmtCtx, &packet) < 0) {
                        printf("Error muxing packet\n");
                        return -1;
                }
               
        }
其中frameRate是自己设置的实际值,例如设置成25,播放出来的实际帧率是12.设置成50,播放出来的实际帧率是25
页: [1]
查看完整版本: linux下安装的FFMPEG,播放视频有点问题