Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9463912
  • 博文数量: 1750
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 20091
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1750)

文章存档

2024年(26)

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: 其他平台

2018-02-24 15:08:42

Ffmpeg 的参考代码在 /usr/share/doc/ffmpeg/examples

逐步分析:

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o avio_dir_cmd.o avio_dir_cmd.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o avio_reading.o avio_reading.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o decode_audio.o decode_audio.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o decode_video.o decode_video.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o demuxing_decoding.o demuxing_decoding.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o encode_audio.o encode_audio.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o encode_video.o encode_video.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o extract_mvs.o extract_mvs.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o filtering_video.o filtering_video.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o filtering_audio.o filtering_audio.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o http_multiclient.o http_multiclient.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o metadata.o metadata.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o muxing.o muxing.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o remuxing.o remuxing.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o resampling_audio.o resampling_audio.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o scaling_video.o scaling_video.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o transcode_aac.o transcode_aac.c

cc -I/usr/include/x86_64-linux-gnu -Wall -g   -c -o transcoding.o transcoding.c

cc   avio_dir_cmd.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o avio_dir_cmd

cc   avio_reading.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o avio_reading

cc   decode_audio.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o decode_audio

cc   decode_video.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o decode_video

cc   demuxing_decoding.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o demuxing_decoding

cc   encode_audio.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -lm -o encode_audio

cc   encode_video.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o encode_video

cc   extract_mvs.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o extract_mvs

cc   filtering_video.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o filtering_video

cc   filtering_audio.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o filtering_audio

cc   http_multiclient.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o http_multiclient

cc   metadata.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o metadata

cc   muxing.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -lm -o muxing

cc   remuxing.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o remuxing

cc   resampling_audio.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -lm -o resampling_audio

cc   scaling_video.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o scaling_video

cc   transcode_aac.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o transcode_aac

cc   transcoding.o  -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil  -o transcoding

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * libavformat AVIOContext API example.

 *

 * Make libavformat demuxer access media content through a custom AVIOContext read callback.

 * @example avio_reading.c

 */

文本框: /.*
 * @file
 * libavformat AVIOContext API example.
 *
 * Make libavformat demuxer access media content through a custom AVIOContext read callback.
 * @example avio_reading.c
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * audio decoding with libavcodec API example

 *

 * @example decode_audio.c

 */

文本框: /.*
 * @file
 * audio decoding with libavcodec API example
 *
 * @example decode_audio.c
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * video decoding with libavcodec API example

 *

 * @example decode_video.c

 */

文本框: /.*
 * @file
 * video decoding with libavcodec API example
 *
 * @example decode_video.c
 */
             

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * Demuxing and decoding example.

 *

 * Show how to use the libavformat and libavcodec API to demux and

 * decode audio and video data.

 * @example demuxing_decoding.c

 */

文本框: /.*
 * @file
 * Demuxing and decoding example.
 *
 * Show how to use the libavformat and libavcodec API to demux and
 * decode audio and video data.
 * @example demuxing_decoding.c
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * audio encoding with libavcodec API example.

 *

 * @example encode_audio.c

 */

文本框: /.*
 * @file
 * audio encoding with libavcodec API example.
 *
 * @example encode_audio.c
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * video encoding with libavcodec API example

 *

 * @example encode_video.c

 */

文本框: /.*
 * @file
 * video encoding with libavcodec API example
 *
 * @example encode_video.c
 */

 SHAPE  \* MERGEFORMAT

ffhash.c

This example is a simple command line application that takes one or more arguments. It demonstrates a typical use of the hashing API with allocation, initialization, updating, and finalizing.

文本框: ffhash.c
This example is a simple command line application that takes one or more arguments. It demonstrates a typical use of the hashing API with allocation, initialization, updating, and finalizing.

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * libavfilter API usage example.

 *

 * @example filter_audio.c

 * This example will generate a sine wave audio,

 * pass it through a simple filter chain, and then compute the MD5 checksum of

 * the output data.

 *

 * The filter chain it uses is:

 * (input) -> abuffer -> volume -> aformat -> abuffersink -> (output)

 *

 * abuffer: This provides the endpoint where you can feed the decoded samples.

 * volume: In this example we hardcode it to 0.90.

 * aformat: This converts the samples to the samplefreq, channel layout,

 *          and sample format required by the audio device.

 * abuffersink: This provides the endpoint where you can read the samples after

 *              they have passed through the filter chain.

 */

文本框: /.*
 * @file
 * libavfilter API usage example.
 *
 * @example filter_audio.c
 * This example will generate a sine wave audio,
 * pass it through a simple filter chain, and then compute the MD5 checksum of
 * the output data.
 *
 * The filter chain it uses is:
 * (input) -> abuffer -> volume -> aformat -> abuffersink -> (output)
 *
 * abuffer: This provides the endpoint where you can feed the decoded samples.
 * volume: In this example we hardcode it to 0.90.
 * aformat: This converts the samples to the samplefreq, channel layout,
 *          and sample format required by the audio device.
 * abuffersink: This provides the endpoint where you can read the samples after
 *              they have passed through the filter chain.
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * API example for audio decoding and filtering

 * @example filtering_audio.c

 */

文本框: /.*
 * @file
 * API example for audio decoding and filtering
 * @example filtering_audio.c
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * API example for decoding and filtering

 * @example filtering_video.c

 */

文本框: /.*
 * @file
 * API example for decoding and filtering
 * @example filtering_video.c
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * API example for audio decoding and filtering

 * @example filtering_audio.c

 */

文本框: /.*
 * @file
 * API example for audio decoding and filtering
 * @example filtering_audio.c
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * libavformat multi-client network API usage example.

 *

 * @example http_multiclient.c

 * This example will serve a file without decoding or demuxing it over http.

 * Multiple clients can connect and will receive the same file.

 */

文本框: /.*
 * @file
 * libavformat multi-client network API usage example.
 *
 * @example http_multiclient.c
 * This example will serve a file without decoding or demuxing it over http.
 * Multiple clients can connect and will receive the same file.
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * HW-Accelerated decoding example.

 *

 * @example hw_decode.c

 * This example shows how to do HW-accelerated decoding with output

 * frames from the HW video surfaces.

 */

文本框: /.*
 * @file
 * HW-Accelerated decoding example.
 *
 * @example hw_decode.c
 * This example shows how to do HW-accelerated decoding with output
 * frames from the HW video surfaces.
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * Shows how the metadata API can be used in application programs.

 * @example metadata.c

 */

文本框: /.*
 * @file
 * Shows how the metadata API can be used in application programs.
 * @example metadata.c
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * libavformat API example.

 *

 * Output a media file in any supported libavformat format. The default

 * codecs are used.

 * @example muxing.c

 */

文本框: /.*
 * @file
 * libavformat API example.
 *
 * Output a media file in any supported libavformat format. The default
 * codecs are used.
 * @example muxing.c
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * Intel QSV-accelerated H.264 decoding example.

 *

 * @example qsvdec.c

 * This example shows how to do QSV-accelerated H.264 decoding with output

 * frames in the GPU video surfaces.

 */

文本框: /.*
 * @file
 * Intel QSV-accelerated H.264 decoding example.
 *
 * @example qsvdec.c
 * This example shows how to do QSV-accelerated H.264 decoding with output
 * frames in the GPU video surfaces.
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * libavformat/libavcodec demuxing and muxing API example.

 *

 * Remux streams from one container format to another.

 * @example remuxing.c

 */

文本框: /.*
 * @file
 * libavformat/libavcodec demuxing and muxing API example.
 *
 * Remux streams from one container format to another.
 * @example remuxing.c
 */

 SHAPE  \* MERGEFORMAT

/**

 * @example resampling_audio.c

 * libswresample API use example.

 */

文本框: /.*
 * @example resampling_audio.c
 * libswresample API use example.
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * libswscale API use example.

 * @example scaling_video.c

 */

文本框: /.*
 * @file
 * libswscale API use example.
 * @example scaling_video.c
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * Simple audio converter

 *

 * @example transcode_aac.c

 * Convert an input audio file to AAC in an MP4 container using FFmpeg.

 * Formats other than MP4 are supported based on the output file extension.

 * @author Andreas Unterweger (dustsigns@gmail.com)

 */

文本框: /.*
 * @file
 * Simple audio converter
 *
 * @example transcode_aac.c
 * Convert an input audio file to AAC in an MP4 container using FFmpeg.
 * Formats other than MP4 are supported based on the output file extension.
 * @author Andreas Unterweger (dustsigns@gmail.com)
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * API example for demuxing, decoding, filtering, encoding and muxing

 * @example transcoding.c

 */

文本框: /.*
 * @file
 * API example for demuxing, decoding, filtering, encoding and muxing
 * @example transcoding.c
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * Intel VAAPI-accelerated encoding example.

 *

 * @example vaapi_encode.c

 * This example shows how to do VAAPI-accelerated encoding. now only support NV12

 * raw file, usage like: vaapi_encode 1920 1080 input.yuv output.h264

 *

 */

文本框: /.*
 * @file
 * Intel VAAPI-accelerated encoding example.
 *
 * @example vaapi_encode.c
 * This example shows how to do VAAPI-accelerated encoding. now only support NV12
 * raw file, usage like: vaapi_encode 1920 1080 input.yuv output.h264
 *
 */

 SHAPE  \* MERGEFORMAT

/**

 * @file

 * Intel VAAPI-accelerated transcoding example.

 *

 * @example vaapi_transcode.c

 * This example shows how to do VAAPI-accelerated transcoding.

 * Usage: vaapi_transcode input_stream codec output_stream

 * e.g: - vaapi_transcode input.mp4 h264_vaapi output_h264.mp4

 *      - vaapi_transcode input.mp4 vp9_vaapi output_vp9.ivf

 */

文本框: /.*
 * @file
 * Intel VAAPI-accelerated transcoding example.
 *
 * @example vaapi_transcode.c
 * This example shows how to do VAAPI-accelerated transcoding.
 * Usage: vaapi_transcode input_stream codec output_stream
 * e.g: - vaapi_transcode input.mp4 h264_vaapi output_h264.mp4
 *      - vaapi_transcode input.mp4 vp9_vaapi output_vp9.ivf
 */

阅读(2684) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~