When I looked online to see if you can do something similar with HEVC encoded videos, I wasn't able to find any information. All I found was this by the definition of "AV_FRAME_DATA_MOTION_VECTORS"
Motion vectors exported by some codecs (on demand through the
export_mvs flag set in the libavcodec AVCodecContext flags2 option).
The data is the AVMotionVector struct defined in
libavutil/motion_vector.h.
but there was no information on exactly which codecs export this motion vector information. How would I go about finding this out?
I am working for a company recording educational screencasts using Goodnotes. The first frame looks fine, but as I work on the document, the page number pops up on the bottom left.
My bosses don't like this, so I've been trying to find a way to fix it on the screencast, since I can't find a way to turn it off in Goodnotes.
My current solution is taking a screenshot of the clean frame and using Gimp to crop out all but a small rectangle around where the page number would be, exporting that as a PNG and using ffmpeg to overlay that. The resulting image looks great and my bosses approve, but the script takes time to run since it needs to reencode. I'm wondering if there's a way to do this all with ffmpeg and run it with the -c copy flag since the first frame is clean. Please let me know if this is even possible.
I know using ffmpeg, we can create MPEG-DASH ready files, including the segments and the .mpd manifest file. For instance, I'm trying this command which works:
But I don't want to segment the video- so a simpler version where we have multiple versions of the whole video, no chunks. Does MPEG-DASH allow it? If so, how can I use ffmpeg to do it without creating the chunks?
I'm trying to convert audio streams to AAC in C++. FFplay plays everything fine (now) but VLC still has problems with one particular situation: 5.1(side). FFplay only plays it if I filter 5.1(side) to 5.1. Filtering to stereo or mono works well and as expected.
My setup right now is:
send packet
receive audio AVFrame
apply filter
resample to produce output AVFrame with 1024 samples (required by AAC)
send new audio frame
receive audio packet
Weirdly enough, using FFmpeg's CLI converts my file properly.
ffmpeg -i test.mp4
But FFprobe tells me that the audio stream is now 6 channels instead of 5.1(side) or 5.1. I did try to set AAC to 6 channels in both the AVStream and the AVCodecContext. Setting it in the AVStream doesn't change anything in FFprobe and the AVCodecContext for AAC doesn't allow it.