我想编译一下.
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_imageimg2dec.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)