Ffmpeg 录制时保持视频文件可播放

Ffmpeg 录制时保持视频文件可播放,ffmpeg,gstreamer,mp4,h.264,Ffmpeg,Gstreamer,Mp4,H.264,我试图从一个任意位置开始,同时录制一个文件。但在我停止录制之前,该文件似乎无法播放 录音 gst-launch-1.0 -e videotestsrc ! x264enc ! mp4mux ! filesink location=test.mp4 从udp传输,从第1分钟开始 ffmpeg -i test.mp4 -re -ss 00:01:00 -f mpegts udp://127.0.0.1:1453 ffmpeg说找不到moov atom,就退出了。 在我停止录音管道之后。它的工作

我试图从一个任意位置开始,同时录制一个文件。但在我停止录制之前,该文件似乎无法播放

录音

gst-launch-1.0 -e videotestsrc ! x264enc ! mp4mux ! filesink location=test.mp4
从udp传输,从第1分钟开始

ffmpeg -i  test.mp4 -re -ss 00:01:00 -f mpegts udp://127.0.0.1:1453
ffmpeg说找不到moov atom,就退出了。 在我停止录音管道之后。它的工作如预期


提前感谢大家。

您需要在片段中进行记录以使此工作正常进行,即设置合理的
片段持续时间(以毫秒为单位)

要使用gstreamer播放(录制时):


MOOV框只在文件完成后才被写入。Mux改为.ts。@Mulvya,我可以用这种格式存储h264视频吗?我应该使用哪个元素作为muxer,mpegtsmux?@Mulvya,这似乎有效,但当我同时使用-t/-ss和-re标志时,流会等待我传递给-t/-ss标志的任何秒数,然后启动。此文件扩展名是否相关?
-re
标志表示实时处理,
ss
开关用作输出选项时表示“解码并丢弃,直到到达时间戳”。尝试将ss/t放在
-i
之前,我会说使用mkv容器,它在开始时存储元数据(而mp4在结束时存储元数据)。。嗯,但是当我想到它的时候,我不确定这是否是真的。。也许你可以试试看
gst-launch-1.0 -e videotestsrc ! x264enc ! mp4mux fragment-duration=2000 ! filesink location=test.mp4
gst-launch-1.0 filesrc location=test.mp4 ! decodebin ! videoconvert ! xvimagesink