zoukankan      html  css  js  c++  java
  • ffmpeg开发中出现的问题(三)

    不足请指正.... 请勿转载,因为结论还不成熟

    1. provide packet is too small

    原因:编码的时候, packet没有释放就使用

    解决:

    av_free_packet();

    av_init_packet();

    avcodec_encode_vidoe2();

    这里如果把av_free_packet()写在后面都不行,真是怪了


    2. sws_scale();提示错误

    原因:

    sws_scale中的frame都要分配空间和大小和格式,这样才可以成功,如果用指针,那么指针指向的地方是否有上述三点要求


    3. avcode_decode_video234();或者avcodec_dencode_video2()错误

    原因:

    很大可能是packet和frame没有对应好,没有分配空间或者分配空间不对,或者格式


    4 . 这个是看源代码发现的,不过一般是初学的

    Unable to find a suitable output format for:

    原因:

    因为没有调用av_register_all();

    如果有网络,就要调用另一个register

    注意是否没有调用其它的初始化函数


    5.

    avcodec_encode_audio(audioStream->codec,audioBuffer,AUDIO_BUFFER_SIZE, frame.data.bytes);并没有输入参数来说明原始帧的长度,意味着ffmpeg在编码音频时默认音频原始帧长度是固定的,这个值由

    audioStream->codec->frame_size来指定。

    传入buffer区数据大小则由

    audioStream->codec->frame_size * bytes per channel *channels来决定

    ffmpeg音频编码时需要够一帧长度才会编码


    6. 我这有个很简单原则:

    ffmpeg如果出现警告,那一定要解决,否则到最后,就不知道错误来自何方.

    警告累积多了,就会产生错误, 所以,警告一定要重视


    7. ffmpeg 音频转码中,不能直接解码后马上编码,否则数据会出错。声音很杂,里面有主要声音

    原因:两者的frame相关数据是不一样的,不能马上解码,只是data数据域相同,最重要的格式不一样

    现象:1.打不开codec,原因是aac的需要s16.而不能乱设置。

                2. 声音无法写进去

                3. 噪声太大

    解决: 重新分配一个frame ,把数据赋值过来


    每天早上叫醒你的不是闹钟,而是心中的梦~
  • 相关阅读:
    LeetCode 334 Increasing Triplet
    LeetCode 笔记27 Two Sum III
    LeetCode 笔记28 Maximum Gap
    最小的图灵完备语言——BrainFuck
    蛋疼的SVG外部引用方式
    HackerRank# Hexagonal Grid
    HackerRank# The Longest Common Subsequence
    HackerRank# Bricks Game
    HackerRank# Fibonacci Modified
    HackerRank# Knapsack
  • 原文地址:https://www.cnblogs.com/vintion/p/4117048.html
Copyright © 2011-2022 走看看