我想编译一下.
program.c
#include <libavcodec/avcodec.h>
int main(){
int i = avpicture_get_size(AV_PIX_FMT_RGB24,300,300);
}
Run Code Online (Sandbox Code Playgroud)
运行这个
gcc -I$HOME/ffmpeg/include program.c
Run Code Online (Sandbox Code Playgroud)
给出错误
/tmp/ccxMLBme.o: In function `main':
program.c:(.text+0x18): undefined reference to `avpicture_get_size'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
但是,定义了avpicture_get_size.为什么会这样?
我在使用时遇到了一些问题
git clone
.这些文件是在我当地的git文件夹中下载的.运行命令
git checkout -f HEAD
给我-
'无法写入由于缺少磁盘空间而导致的新索引文件错误'.
我手动从我的计算机中删除了大文件,但仍然收到相同的错误.
Cloning into 'ffmpeg'...
remote: Counting objects: 7890, done.
remote: Compressing objects: 100% (4412/4412), done.
Receiving objects: 100% (7890/7890), 299.75 MiB | 24.19 MiB/s, done.
remote: Total 7890 (delta 3346), reused 7846 (delta 3317)
Resolving deltas: 100% (3346/3346), done.
Checking out files: 100% (7019/7019), done.
fatal: unable to write new index file
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and …
Run Code Online (Sandbox Code Playgroud) 我有一个通过解析 1.4G 大小的 CSV 创建的 DataFrame 'clicks'。我正在尝试使用 apply 函数创建一个新列“购买”。
clicks['bought'] = clicks['session'].apply(getBoughtItemIDs)
Run Code Online (Sandbox Code Playgroud)
在 getBoughtItemIDs 中,我正在检查“buys”数据框是否具有我想要的值,如果是,则返回连接它们的字符串。getBoughtItemIDs 中的第一行永远占用。有什么方法可以让它更快?
def getBoughtItemIDs(val):
boughtSessions = buys[buys['session'] == val].values
output = ''
for row in boughtSessions:
output += str(row[1]) + ","
return output
Run Code Online (Sandbox Code Playgroud) 我尝试使用ff_load_image
img2dec.c 中定义的函数加载图像文件:
char* filename = argv[1];
uint8_t* data;
int linesize, width, height, log_ctx;
enum AVPixelFormat pix_fmt = AV_PIX_FMT_RGB24;
//load the image
int i = ff_load_image(&data, &linesize, &width, &height, &pix_fmt, filename, &log_ctx);
printf("%i\n", i);
Run Code Online (Sandbox Code Playgroud)
但是,我无缘无故地遇到了分段错误。我已经把printf
语句放在了所有地方ff_load_image
,它已经到达函数的末尾。为什么会出现分段错误?有没有更好的方法来加载图像?我想获得图片中的每个像素。
当我运行make all rule中指定的相同gcc命令时,我没有收到任何错误.但是当我运行make all时,我会遇到一堆错误.为什么会这样?
Makefile文件:
all: program.c
gcc -I$HOME/ffmpeg/include program.c -L$HOME/ffmpeg/lib -lswscale -lavdevice -lavfilter -lswscale -lswresample -lavformat -lavcodec -lavutil -lz -lm -lpthread -o program
Run Code Online (Sandbox Code Playgroud)
运行gcc命令:
(No error)
Run Code Online (Sandbox Code Playgroud)
跑步全部:
gcc -IOME/ffmpeg/include program.c -LOME/ffmpeg/lib -lswscale -lavdevice -lavfilter -lswscale -lswresample -lavformat -lavcodec -lavutil -lz -lm -lpthread -o program
program.c:15:32: error: libavcodec/avcodec.h: No such file or directory
program.c:16:32: error: libswscale/swscale.h: No such file or directory
program.c:17:34: error: libavformat/avformat.h: No such file or directory
program.c:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' …
Run Code Online (Sandbox Code Playgroud) 在program.c中,我想使用libavcodec/avcodec.h中定义的方法'avcodec_register_all()'.
运行
gcc program.c -L$HOME/ffmpeg/lib/libavfilter.a -L$HOME/ffmpeg/lib/libavcodec.a
Run Code Online (Sandbox Code Playgroud)
给我一个错误
/tmp/ccNeQywU.o: In function `main':
program.c:(.text+0x3f): undefined reference to `avcodec_register_all'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
拼写正确,功能已定义.为什么会这样?
program.c
#include <stdio.h>
int main (int args, char *argv[])
{
avcodec_register_all();
}
Run Code Online (Sandbox Code Playgroud)