作者:I_amkaiman | 来源:互联网 | 2023-06-30 14:01
效果如下执行效果打印日志zhzh-lpc:~projectffmpeg$.frmitest.mp4opentest.mp4success.Input#0,mov,mp4,m4a
效果如下
执行效果打印日志 zh@zh-lpc:~/project/ffmpeg$ ./frmi test.mp4open test.mp4 success.Input Metadata:major_brand : isomminor_version : 512 compatible_brands: isomiso2avc1mp41title : BigBuckBunny_115k.movencoder : Lavf58.76.100Duration: 00:05:52.96, bitrate: N/AStream Metadata:handler_name : VideoHandlerStream Metadata:handler_name : SoundHandler zh@zh-lpc:~/project/ffmpeg$
简单分析 在真正实操之前,我们先来分析一下,我们正常使用C语言读取一个文件都需要哪些步骤:
1、打开文件; 2、读取文件信息; 3、关闭文件。 一般就是:open --> read --> close三步走。那么在ffmpeg中至少也需要这三步。
Linux中原始读取文件的小实验 1、创建一个文件
zh@zh-lpc:~/project/unixapi$ echo "aaaaa三生三世十里桃花123456" > info.txt
2、创建C语言编程文件
# include # include # define BUFFSIZE 1024 int main ( ) { int ret = 0 ; FILE * file; char buf[ BUFFSIZE] ; char * fileName = "./info.txt" ; file = fopen ( fileName, "r" ) ; fread ( buf, BUFFSIZE+ 1 , 1 , file) ; printf ( "%s\n" , buf) ; fclose ( file) ; return 0 ; }
3、编译
zh@zh-lpc:~/project/unixapi$ make unix_file cc unix_file.c -o unix_file zh@zh-lpc:~/project/unixapi$
4、执行
zh@zh-lpc:~/project/unixapi$ ./unix_file aaaaa三生三世十里桃花123456zh@zh-lpc:~/project/unixapi$
ffmpeg读取视频文件信息—代码 ffmpeg_read_media_info.c:
# include # include # include int main ( int argc, char * argv[ ] ) { int ret &#61; 0 ; const char * fileName &#61; "" ; AVFormatContext * ac &#61; NULL ; av_log_set_level ( AV_LOG_INFO) ; if ( argc !&#61; 2 ) { av_log ( NULL , AV_LOG_WARNING, "params not enough. \n\n" ) ; return - 1 ; } fileName &#61; argv[ 1 ] ; ret &#61; avformat_open_input ( & ac, fileName, NULL , NULL ) ; if ( ret < 0 ) { av_log ( NULL , AV_LOG_ERROR, "open %s error. \n\n" , fileName) ; return - 1 ; } else { av_log ( NULL , AV_LOG_INFO, "open %s success. \n\n" , fileName) ; } av_dump_format ( ac, 0 , fileName, 0 ) ; avformat_close_input ( & ac) ; return 0 ; }
编译&#xff1a;
gcc -g -o frmi ffmpeg_read_media_info.c -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavutil
执行
zh&#64;zh-lpc:~/project/ffmpeg$ ls -l test.mp4 -rwx------ 1 zh zh 5431627 9 月 10 23 :05 test.mp4 zh&#64;zh-lpc:~/project/ffmpeg$ zh&#64;zh-lpc:~/project/ffmpeg$ ls -l frmi -rwxrwxr-x 1 zh zh 65152 9 月 16 22 :00 frmi zh&#64;zh-lpc:~/project/ffmpeg$ zh&#64;zh-lpc:~/project/ffmpeg$ ls -l ffmpeg_read_media_info.c -rwx------ 1 zh zh 955 9 月 16 22 :02 ffmpeg_read_media_info.c zh&#64;zh-lpc:~/project/ffmpeg$ zh&#64;zh-lpc:~/project/ffmpeg$ zh&#64;zh-lpc:~/project/ffmpeg$ ./frmi test.mp4open test.mp4 success.Input Metadata:major_brand : isomminor_version : 512 compatible_brands: isomiso2avc1mp41title : BigBuckBunny_115k.movencoder : Lavf58.76.100Duration: 00:05:52.96, bitrate: N/AStream Metadata:handler_name : VideoHandlerStream Metadata:handler_name : SoundHandler zh&#64;zh-lpc:~/project/ffmpeg$