<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi everyone.<div><br></div><div>I've written some code to change the video container from MOV to MPEG-TS using ffmpeg API successfully. I'm using physical files. </div><div><br></div><div>Now i have to change my input from file to custom IO. I changed the code for use custom IO with a callback (read_packet_callback) to feed ffmpeg.</div><div><br></div><div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; color: rgb(71, 132, 187); "><span class="Apple-style-span" style="color: rgb(96, 96, 95); ">fmtCtx</span><span style="color: rgb(96, 96, 95); "> = </span>avformat_alloc_context<span style="color: rgb(96, 96, 95); ">();</span></div></div><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; color: rgb(96, 96, 95); ">iformat = <span style="color: rgb(71, 132, 187); ">av_find_input_format</span>(input_fmt);</div></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; color: rgb(96, 96, 95); "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; color: rgb(160, 110, 182); "><span class="Apple-style-span" style="color: rgb(96, 96, 95); ">ibuffer </span><span style="color: rgb(96, 96, 95); ">= (</span>unsigned<span style="color: rgb(96, 96, 95); "> </span>char<span style="color: rgb(96, 96, 95); "> *) </span><span style="color: rgb(71, 132, 187); ">av_malloc</span><span style="color: rgb(96, 96, 95); ">(</span>BUF_SIZE<span style="color: rgb(96, 96, 95); "> + </span>FF_INPUT_BUFFER_PADDING_SIZE<span style="color: rgb(96, 96, 95); ">)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; color: rgb(160, 110, 182); "><span style="color: rgb(96, 96, 95); "><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><span class="Apple-style-span" style="color: rgb(71, 132, 187); "><span class="Apple-style-span" style="color: rgb(96, 96, 95); ">fmtCtx->pb</span><span style="color: rgb(96, 96, 95); "> = </span></span><span class="Apple-style-span" style="color: rgb(96, 96, 95); "><span style="color: rgb(71, 132, 187); ">avio_alloc_context</span>(ibuffer, </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><span class="Apple-style-span" style="color: rgb(96, 96, 95); "><span style="color: rgb(160, 110, 182); "><span class="Apple-tab-span" style="white-space: pre; ">                          </span>BUF_SIZE</span>, </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><span class="Apple-style-span" style="color: rgb(96, 96, 95); "><span style="color: rgb(255, 154, 43); "><span class="Apple-tab-span" style="white-space: pre; ">                                </span>0</span>, </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><span class="Apple-style-span" style="color: rgb(96, 96, 95); "><span class="Apple-tab-span" style="white-space: pre; ">                                </span>read_context, </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><span class="Apple-style-span" style="color: rgb(96, 96, 95); "><span class="Apple-tab-span" style="white-space: pre; ">                          </span>read_packet_callback, </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><span class="Apple-style-span" style="color: rgb(96, 96, 95); "><span style="color: rgb(160, 110, 182); "><span class="Apple-tab-span" style="white-space: pre; ">                                </span>NULL</span>, </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><span class="Apple-style-span" style="color: rgb(96, 96, 95); "><span style="color: rgb(160, 110, 182); "><span class="Apple-tab-span" style="white-space: pre; ">                           </span>NULL</span>);</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><span class="Apple-style-span" style="color: rgb(96, 96, 95); "><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><span class="Apple-style-span" style="color: rgb(96, 96, 95); "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; color: rgb(96, 96, 95); "><span style="color: rgb(71, 132, 187); ">avformat_open_input</span>(&fmtCtx, <span style="color: rgb(127, 157, 34); ">"in-memory"</span>, iformat, <span style="color: rgb(160, 110, 182); ">NULL</span>)</div></span></div></div></div><div><br></div><div>When i run the code the function avformat_open_input blocks, it reads N chunks of data but don't terminate with or without error. This happens with MOV format. I've tried using MPEG-TS format and this code runs successfully.</div><div><br></div><div>There's a special trick for MOV format? Has anyone encountered this problem?</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><span class="Apple-style-span" style="color: rgb(96, 96, 95); "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; color: rgb(96, 96, 95); "><br></div></span><span class="Apple-style-span" style="font-family: Helvetica; font-size: medium; ">Thanks!</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><span class="Apple-style-span" style="font-family: Helvetica; font-size: medium; "><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; "><span class="Apple-style-span" style="font-family: Helvetica; font-size: medium; ">David Rodrigues</span></div></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; color: rgb(96, 96, 95); "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Consolas; color: rgb(96, 96, 95); "><br></div></body></html>