对于如何将视频流保存到mp4文件中,我相当困惑。我正在使用FFMPEG。让我解释一下问题:
我还认识到,数据包的pts不是连续的,而dts是连续的。我知道B帧,但这在我的情况下是一个问题吗?
// Prepare the output
AVFormatContext* oc = avformat_alloc_context();
oc->oformat = av_guess_format(NULL, "video.mp4", NULL);
// Must write header, packets, and trailing
avio_open2(&oc->pb, "video.mp4", AVIO_FLAG_WRITE, NULL, NULL);
// Write header
AVStream* stream = avformat_new_stream(oc, (AVCodec*) context->streams[video_stream_index]->codec->codec);
avcodec_copy_context(stream->codec, context->streams[video_stream_index]->codec);
stream->sample_aspect_ratio = context->streams[video_stream_index]->codec->sample_aspect_ratio;
avformat_write_header(oc, NULL);
// FOR EACH FRAME...
... av_write_frame(oc, circular[k]); ...
// Write trailer and close the file
av_write_trailer(oc);
avcodec_close(stream->codec);
avio_close(oc->pb);
avformat_free_context(oc);
非常感谢你,
第一:当您使用相机时,最好通过RTP over TCP(TCP作为传输协议)工作。要启用此功能:
AVDictionary *ifmtdict;
av_dict_set(&ifmtdict, "rtsp_transport", "tcp", 0);
...
avformat_open_input (..., &ifmtdict);
第二:在数据包开始到来后,等待第一个关键帧,并从这一刻开始写入文件。
我尝试用python和C++实现代码,结果相同。还尝试另存为。png而不是。jpg。rtsp feed在使用imshow显示相机时工作正常,只有在试图保存帧时才会出现问题。据我所知,这些错误都与ffmpeg有关,但是google对这些类型的错误帮助不大。
(希望有人能帮我解决这个问题)非常感谢!!
我想录制我的网络摄像头,但录音要有10秒的片段。所以,我想从我的网络摄像头上记录10秒钟的片段(倒数)。我是FFMPEG的初学者,所以我已经开始搜索如何做到这一点。我发现了一些ffmpeg命令和bellow命令似乎可以,但我有一个问题:它开始录制和保存文件,但我只能打开第一个文件,看到带音频的网络摄像头。其他文件只有音频(尝试用vlc和windows media player打开)。
我是Android Studio的新手。我想通过点击按钮用手机摄像头拍摄照片,然后显示拍摄的照片,照片将自动保存在手机图库中。我在网上找到了一些例子,但我拍摄的照片没有保存在图库中。我已经使用了下面的代码。我能得到一些帮助吗?
我正在寻找一个命令ffmpeg,它保存活的输入(rtmp或hls)到hls m3u8与mp4段文件。我知道这是可能的,即有infohttps://bitmovin.com/hls-news-wwdc-2016/,但我尝试的每个命令都生成ts文件。有人知道解决办法吗?
1. Gradle 2.代码 3、Logcat: 采用gcc 4.9构建。x(GCC)20150123(预发布)配置:---目标操作系统=linux--交叉前缀=/root/bravobit/ffmpeg-android/toolschain-android/bin/arm-linux-androideabi---arch=arm--cpu=cortex-a8--启用运行时cpudetec--sy