<div dir="ltr"><span style="font-size:12.8000001907349px">Hi all,</span><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">I'm new to ffmpeg and trying to use ffmpeg as a shared library in Android to convert PCM to an .mp4 file by following tutorials. </div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px"><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:19.5px">I hit a snag in my openOutputFile function, I have the following which has given me an error (passing in "/sdcard/a.mp4" for filename):</p><pre style="white-space:pre-wrap;margin-top:0px;padding:5px;border:0px;font-size:13px;overflow:auto;width:auto;max-height:600px;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;color:rgb(57,51,24);word-wrap:normal;background-color:rgb(238,238,238)"><code style="margin:0px;padding:0px;border:0px;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;white-space:inherit"><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,139)">if</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)"> </span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">((</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">error </span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">=</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)"> avio_open</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">(&</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">output_io_context</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">,</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)"> filename</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">,</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">
                       AVIO_FLAG_WRITE</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">))</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)"> </span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)"><</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)"> </span><span style="margin:0px;padding:0px;border:0px;color:rgb(128,0,0)">0</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">)</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)"> </span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">{</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">
    __android_log_print</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">(</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">ANDROID_LOG_ERROR</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">,</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)"> </span><span style="margin:0px;padding:0px;border:0px;color:rgb(128,0,0)">"encoder"</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">,</span><span style="margin:0px;padding:0px;border:0px;color:rgb(128,0,0)">"couldn't open output file"</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">);</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">
    </span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,139)">exit</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">(</span><span style="margin:0px;padding:0px;border:0px;color:rgb(128,0,0)">1</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">);</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">}</span></code></pre><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:19.5px">My configure for ffmpeg compilation is as follows:</p><pre style="white-space:pre-wrap;margin-top:0px;padding:5px;border:0px;font-size:13px;overflow:auto;width:auto;max-height:600px;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;color:rgb(57,51,24);word-wrap:normal;background-color:rgb(238,238,238)"><code style="margin:0px;padding:0px;border:0px;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;white-space:inherit"><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">./</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">configure \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">prefix</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">=</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">$PREFIX \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">enable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">demuxer</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">=</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">mov \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">enable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">muxer</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">=</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">mov \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">enable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">libvpx \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">enable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">libvorbis \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">enable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">protocol</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">=</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">file \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">enable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">shared \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">disable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,139)">static</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)"> \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">disable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">doc \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">disable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">ffmpeg \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">disable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">ffplay \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">disable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">ffprobe \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">disable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">ffserver \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">disable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">avdevice \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">disable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">symver \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">cross</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">prefix</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">=</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">$TOOLCHAIN</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">/</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">bin</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">/</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">arm</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">linux</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">androideabi</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)"> \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">target</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">os</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">=</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">linux \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">arch</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">=</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">arm \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">enable</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">cross</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">compile \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">sysroot</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">=</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">$SYSROOT \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">extra</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">cflags</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">=</span><span style="margin:0px;padding:0px;border:0px;color:rgb(128,0,0)">"-Os -fpic $ADDI_CFLAGS"</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)"> \
</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">--</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">extra</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">-</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">ldflags</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)">=</span><span style="margin:0px;padding:0px;border:0px;color:rgb(128,0,0)">"$ADDI_LDFLAGS"</span><span style="margin:0px;padding:0px;border:0px;color:rgb(0,0,0)"> \</span></code></pre><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:19.5px">When searching, I have come across others' experiencing similar issues and added the --enable-protocol=file and --enable-muxer=mov when compiling ffmpeg. I did add the permissions to external storage in the manifest.xml file. Please let me know what you think.</p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:19.5px">Cheers,</p><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:15px;clear:both;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:19.5px">Cen</p></div>
</div>