我正在使用libavcodec(截至3/3/10的最新git)将原始pcm编码为aac(启用了libfaac支持).我通过每次使用codec_context-> frame_size样本重复调用avcodec_encode_audio来完成此操作.前四个调用成功返回,但第五个调用永远不会返回.当我使用gdb中断时,堆栈已损坏.
如果我使用audacity将pcm数据导出到.wav文件,那么我可以使用命令行ffmpeg转换为aac而没有任何问题,所以我确定这是我做错了.
我写了一个小的测试程序来复制我的问题.它从文件中读取测试数据,可在此处获取:http: //birdie.protoven.com/audio.pcm(签名16位LE pcm约2秒)
如果我直接使用FAAC,我可以完成所有工作,但如果我可以使用libavcodec,那么代码会更清晰一些,因为我也编码视频,并将两者写入mp4.
ffmpeg版本信息:
FFmpeg version git-c280040, Copyright (c) 2000-2010 the FFmpeg developers
built on Mar 3 2010 15:40:46 with gcc 4.4.1
configuration: --enable-libfaac --enable-gpl --enable-nonfree --enable-version3 --enable-postproc --enable-pthreads --enable-debug=3 --enable-shared
libavutil 50.10. 0 / 50.10. 0
libavcodec 52.55. 0 / 52.55. 0
libavformat 52.54. 0 / 52.54. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0.10. 0 / 0.10. 0
libpostproc 51. 2. 0 / 51. 2. 0
Run Code Online (Sandbox Code Playgroud)
有没有我没有设置的东西,或者在我的编解码器环境中设置不正确,也许?任何帮助是极大的赞赏!
这是我的测试代码: …
我正在使用 libcurl 通过 https 与两个单独的 Web 服务器通信。
第一个服务器在 64 位 Ubuntu 10.04 上运行 Lighttpd 1.4.26-1。Lightty 是针对 openssl 版本 0.9.8k 构建的。
第二台服务器在 32 位 Ubuntu 10.04 上运行 Nginx 0.7.65。Nginx 是针对 openssl 版本 0.9.8k 构建的。
这两个服务器使用相同的证书,并且 DNS 在它们之间循环。我使用 /etc/hosts 来管理我正在击中的两个中的哪一个。
我正在使用针对 openssl 1.0.0c 构建的 libcurl 7.21.2 版。
有了这个,libcurl 可以成功地向 lightty 服务器发出 https 请求,但不能向 nginx 服务器发出请求。我可以使用 curl 命令行界面来复制它。这是 curl -v 的输出:
* About to connect() to <hostname> port 443 (#0)
* Trying <ip>... connected
* Connected to <hostname> (<ip>) port 443 (#0)
* …Run Code Online (Sandbox Code Playgroud)