Hi everyone,<div><br></div><div>I built ffmpeg for android to use with JNI and i tried to make use of methods that are in the muxing example (<a href="http://ffmpeg.org/doxygen/trunk/muxing_8c-source.html#l00414">http://ffmpeg.org/doxygen/trunk/muxing_8c-source.html#l00414</a>).</div>
<div>I source code im using is:</div><div><div>        <i>char server[] = "rtsp://<a href="http://192.168.1.34/rtplive/streamTeste">192.168.1.34/rtplive/streamTeste</a>";</i></div><div>       <i> av_register_all();</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>avcodec_register_all();</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">   </span>avformat_network_init();</i></div><div><i><br></i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>/* auto detect the output format from the name. */</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">        </span>avformat_alloc_output_context2(&oc, 0, "mp4", server);</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>if(!oc)</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">                   </span>LOGI(5,"Could not guess format...");</i></div><div><span class="Apple-tab-span" style="white-space:pre"><i>    </i></span></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>//oc = avformat_alloc_context();</i></div><div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre">      </span>LOGI(5,"1...");</i></div>
<div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>oformat = oc->oformat;</i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>strcpy(oc->filename,server);</i></div>
<div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>/* find the video encoder */</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">      </span>video_codec = avcodec_find_encoder(CODEC_ID_MPEG4); //cannot build h264 says not found :(</i></div>
<div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>if(video_codec == 0)</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">              </span>LOGI(5,"Could not find video encoder...");</i></div>
<div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>LOGI(5,"2...");</i></div><div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre">     </span>/* add a video output stream */</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>video_st = avformat_new_stream(oc, video_codec);</i></div><div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre">      </span>video_c = avcodec_alloc_context3(video_codec);</i></div>
<div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>video_c = video_st->codec;</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">     </span>video_c->codec_id = video_codec->id;</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>video_c->codec_type = AVMEDIA_TYPE_VIDEO;</i></div><div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre">  </span>/* put sample parameters */</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>video_c->bit_rate = 400000;</i></div><div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre">        </span>/* resolution must be a multiple of two, but round up to 16 as often required */</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>video_c->width = 352;</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">  </span>video_c->height = 288;</i></div><div><i><br></i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>/* time base: this is the fundamental unit of time (in seconds) in terms</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">  </span>               of which frame timestamps are represented. for fixed-fps content,</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>               timebase should be 1/framerate and timestamp increments should be</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">  </span>               identically 1. */</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>video_c->time_base= (AVRational){1,25};</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">        </span>video_c->gop_size = 10; /* emit one intra frame every twelve frames at most */</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>video_c->max_b_frames=1;</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">       </span>video_c->pix_fmt = PIX_FMT_YUV420P;</i></div>
<div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>if(video_c->codec_id == CODEC_ID_H264)</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">         </span>av_opt_set(video_c->priv_data, "preset", "slow", 0);</i></div>
<div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>LOGI(5,"3...");</i></div><div><br></div><div><i><span class="Apple-tab-span" style="white-space:pre">        </span>if (avcodec_open2(video_c, video_codec, NULL) < 0) {</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">             </span>LOGI(5,"Could not open video codec");</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">   </span>}</i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>LOGI(5,"4...");</i></div>
<div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>/* allocate the encoded raw picture */</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">    </span>picture = avcodec_alloc_frame();</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>picture->pts = 0;</i></div><div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre">  </span>int size = avpicture_get_size(video_c->pix_fmt, video_c->width, video_c->height);</i></div>
<div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>tmp_picture = avcodec_alloc_frame();</i></div><div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre">  </span>av_dump_format(oc, 0, server, 1);</i></div>
<div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>int ret = 0;</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">      </span>if ((ret = avio_check(server, AVIO_FLAG_WRITE)) < 0)</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>{</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">         </span>LOGI(5,"Could not open server'%d'...'%s'",ret,server);</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>}</i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>else{</i></div><div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre">         </span>/* open the output file, if needed */</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">             </span>if (!(oformat->flags & AVFMT_NOFILE)) {</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">                    </span>if (avio_open(&oc->pb, server, AVIO_FLAG_WRITE) < 0) {</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">                             </span>LOGI(5,"Could not open server...'%s'",server);</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">                  </span>}</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">             </span>}</i></div><div><i><span class="Apple-tab-span" style="white-space:pre"> </span>}</i></div><div><i><br></i></div><div><i><span class="Apple-tab-span" style="white-space:pre">     </span>/* write the stream header, if any */</i></div>
<div><i><span class="Apple-tab-span" style="white-space:pre">     </span>avformat_write_header(oc, 0);</i></div></div><div><br></div><div>It gives me an error on the avio_open function... The server is a Wowza Media Server and the IP address is correct and the server is waiting for new connections. I also have the Internet permission on Android Manifest.</div>
<div><br></div><div>Best Regards and thanks in advance</div>