<div dir="ltr">Hello everyone,<div><br></div><div>I'm using JavaCV, a wrapper for FFmpeg libraries, to encode camera frame into a video in Android. I'm using the FFmpegFrameRecorder (<a href="https://github.com/bytedeco/javacv/blob/master/src/main/java/org/bytedeco/javacv/FFmpegFrameRecorder.java">https://github.com/bytedeco/javacv/blob/master/src/main/java/org/bytedeco/javacv/FFmpegFrameRecorder.java</a>) class to perform the encoding process. The methods of interest are startUnsafe() and record(IplImage image).</div><div><br></div><div>This works perfectly but I ran into an issue when trying to set the video stream metadata. The goal would be to replicate the following command line:</div><div><br></div><div>    ffmpeg -i input.mp4 -metadata:s:v:0 rotate="90" output.mp4</div><div><br></div><div>But this code snippet fails to do so:</div><div><br></div><div>    if ((video_st = avformat_new_stream(oc, video_codec)) != null) {</div><div>             video_c = video_st.codec();</div><div>            video_c.codec_id(oformat.video_codec());</div><div>            video_c.codec_type(AVMEDIA_TYPE_VIDEO);</div><div>            ...</div><div>            AVDictionary avDictionary = new AVDictionary(null);</div><div>            av_dict_set(avDictionary, "rotate", "90", 0);<br></div><div>            video_st.metadata(avDictionaty);</div><div>            ....</div><div>    }</div><div>    avformat_write_header(oc, (PointerPointer) null);</div><div><br></div><div>This still encodes the video correctly, but the added metadata never appears on ffprobe. Have anyone already experienced something like this? Any idea on what could be the issue?</div><div><br></div><div>PS: the ffprobe output can be seen in this GitHub issue (<a href="https://github.com/bytedeco/javacv/issues/132">https://github.com/bytedeco/javacv/issues/132</a>)</div><div><br></div><div>Thanks,</div><div>Edson</div><div><br></div>







</div>