我正試圖在Android中開發一款錄像機和播放應用程序。所以,我正在使用ffmpeg庫,並且已經編譯了要在項目中使用的庫。如何使用ffmpeg庫轉置視頻?
我錄製的視頻,當我播放,一些設備不認方向矩陣,所以我想用的ffmpeg庫來開發一個C方法來完成這個命令:
的ffmpeg -i F。 MP4 -vf 「轉= 1」 -r 24 -sameq f2.mp4"
我發現這個文檔,但不幫我,因爲不使用AVFilter和AVFilterContext類。
http://dranger.com/ffmpeg/tutorial01.html
http://cekirdek.pardus.org.tr/~ismail/ffmpeg-docs/structAVFilterContext.html
http://ffmpeg.org/doxygen/trunk/api-example_8c-source.html
現在我只有打開和關閉視頻文件
這裏我的代碼:
/*open the video file*/
if ((lError = av_open_input_file(&gFormatCtx, gFileName, NULL, 0, NULL)) !=0) {
LOGE(1, "Error open video file: %d", lError);
return; //open file failed
}
/*retrieve stream information*/
if ((lError = av_find_stream_info(gFormatCtx)) < 0) {
LOGE(1, "Error find stream information: %d", lError);
return;
}
/*find the video stream and its decoder*/
gVideoStreamIndex = av_find_best_stream(gFormatCtx, AVMEDIA_TYPE_VIDEO, -1, -1, &lVideoCodec, 0);
if (gVideoStreamIndex == AVERROR_STREAM_NOT_FOUND) {
LOGE(1, "Error: cannot find a video stream");
return;
} else {
LOGI(10, "video codec: %s", lVideoCodec->name);
}
if (gVideoStreamIndex == AVERROR_DECODER_NOT_FOUND) {
LOGE(1, "Error: video stream found, but no decoder is found!");
return;
}
/*open the codec*/
gVideoCodecCtx = gFormatCtx->streams[gVideoStreamIndex]->codec;
LOGI(10, "open codec: (%d, %d)", gVideoCodecCtx->height, gVideoCodecCtx->width);
#ifdef SELECTIVE_DECODING
gVideoCodecCtx->allow_selective_decoding = 1;
#endif
if (avcodec_open(gVideoCodecCtx, lVideoCodec) < 0) {
LOGE(1, "Error: cannot open the video codec!");
return;
}
LOGI(10, "get video info ends");
我如何使用轉ffmpeg的庫中的視頻?
什麼是問題? – alk
當你編譯'ffmpeg'庫時,你已經在觸摸代碼了,那麼爲什麼不看看'ffmpeg'工具本身的來源呢? – alk
是的,我正在查看如何使用ffmpeg庫的代碼。但是,我沒有找到如何將avfilter類與打開的視頻連接起來進行換位的方法。 – beni