美文网首页
ffmpeg # 转封装 函数

ffmpeg # 转封装 函数

作者: FlyingPenguin | 来源:发表于2018-08-17 09:21 被阅读148次
    转封装

    转封装中,用av_read_frame来读取文件的音视频数据。
    其实在avformat_find_stream_info的时候会用read_frame_interal读取一部分数据放在一个列表中,后续直接写。


    avformat_find_stream_info 读取一部分数据放在列表

    当列表中没有数据时,则调用av_read_frame来读取一帧数据。

    转封装中,用do_streamcopy来将编码数据写入到文件。
    只有在转封装的时候才会调用该函数。转码的时候不会调用。

    以flv转mkv提供以下读取数据和写文件的堆栈。

    flv_read_packet

    flv_read_packet

    mkv_write_packet

    mkv_write_packet

    注: 本文涉及的ffmpeg的版本

    ffmpeg version N-91445-g6cc6b61 Copyright (c) 2000-2018 the FFmpeg developers
    built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-11)
    configuration: --enable-gpl --enable-debug=3 --enable-libmfx --disable-optimizations --disable-stripping
    libavutil      56. 18.102 / 56. 18.102
    libavcodec     58. 21.104 / 58. 21.104
    libavformat    58. 17.101 / 58. 17.101
    libavdevice    58.  4.101 / 58.  4.101
    libavfilter     7. 25.100 /  7. 25.100
    libswscale      5.  2.100 /  5.  2.100
    libswresample   3.  2.100 /  3.  2.100
    libpostproc    55.  2.100 / 55.  2.100
    

    相关文章

      网友评论

          本文标题:ffmpeg # 转封装 函数

          本文链接:https://www.haomeiwen.com/subject/ucqzbftx.html