用到了ffmpeg库,以及编码视频的x264,编码音频的fdk-aac,推流使用的rtmp等:
ff_push_flv_to_rtmp_stream(input_filename, output_filename); return 0; } 测试 运行程序: ffplay播放: 我们输入一个mp4测试下: [flv @ 0x5fe24c7bcc80] Tag avc1 incompatible with output codec id '27' ([7][0][0][0]) 因为我们只实现了最最最简单的把flv推流到了rtmp,没有加入编码和解码...
* 只能推流RTMP数据 *@paraminput_filename输入文件 *@paramoutput_filename输出流地址 *@return*/intff_push_flv_to_rtmp_stream(char*input_filename,char*output_filename){...} 1. 2. 3. 4. 5. 6. 7. 8. 9. 创建输入和输出的ffmpeg上下文: int ret=0;// in streamAVFormatContext*ctx=NULL;/...
使用ffmpeg解码音频并使用sdl播放,网上还是有一些例子的,大多都不是特别完善,比如打开音频设备、音频重采样、使用push的方式播放音频等,都是有不少细节需要注意处理。尤其是使用push的方式播放音频,流程很简单完全可以使用单线程实现,但是队列数据长度比较难控制控制。而且有时想要快速搭建一个demo时,总是要重新编写不少...
rtmp_auto_push on; #RTMP服务 rtmp{ server{ listen 1935; #服务端口 chunk_size 4096; #数据传输块的大小 application vod{ play ./vod; #视频文件存放位置 } application live{ live on; # hls on; #开启hls直播。这个参数把直播服务器改造成实时回放服务器 ...
const char *inUrl = "hs.mp4"; //输出的地址 const char *outUrl = "rtmp://192.166...
vim /usr/local/nginx/conf/nginx.conf 增加以下 rtmp { server { listen 1935; # 端口 chunk_size 4000; application live { # 请求路径 live on; } } } 配置完成启动服务 sudo ./sbin/nginx -c conf/nginx.conf netstat -anop |grep 1935 push.h #ifndef PUSHSTREAMTHREAD_H #define PUSHSTREAMTHREA...
/** * 只能推流RTMP数据 * @param input_filename 输入文件 * @param output_filename 输出流地址 * @return */int ff_push_flv_to_rtmp_stream(char *input_filename, char *output_filename){ ...} 创建输入和输出的ffmpeg上下文: int ret = 0;// in streamAVFormatContext *ctx = NULL;// out ...
mkfifo push//push是命名管道的文件名 2、往命名管道输入数据 #!/bin/bashwhile truedoffmpeg-re-f concat-safe0-i playlist.txt-vcodec copy-acodec aac-f flv pipe:1.flv|cat->>pushdone 3、从管道读取数据并推流 ffmpeg-re-i push-c:v copy-c:a aac-f flv"rtmp://rtmp地址/你的直播码" ...
我们先看到public native int pushRtmpFile(String path);方法,这里主要传入的参数是文件的路径。然后在cpp层的代码中也增加方法 代码语言:javascript 复制 JNIEXPORTjintJNICALLJava_com_wangheart_rtmpfile_ffmpeg_FFmpegHandle_pushRtmpFile(JNIEnv*env,jobject instance,jstring path_){...省略代码} ...