FFMPEG流错误:无法使用正确的文件大小和持续时间更新标头 [英] FFMPEG streaming error: Failed to update header with correct filesize and duration

查看:179
本文介绍了FFMPEG流错误:无法使用正确的文件大小和持续时间更新标头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将mp4流传输到IP地址为127.0.0.1:48550的本地计算机上的vlc播放器,但是遇到此错误.

I am trying to stream an mp4 to a vlc player on my local computer at ip address 127.0.0.1:48550, but am encountering this error.

Failed to update header with correct duration.
Failed to update header with correct filesize.

在Mac上进行流式传输时,我没有遇到此问题,但是在Windows PC上遇到了此问题.

I didn't have this problem when streaming on my mac, but am encountering it with a Windows pc.

在我的Mac上,我正在运行ffmpeg 3.2.4,而在PC上,则是使用gcc 7.1.0构建的ffmpeg版本N-86755-g0780ad9.

On my mac I am running ffmpeg 3.2.4, and on the pc, ffmpeg version N-86755-g0780ad9 built with gcc 7.1.0.

以下是VLC媒体播放器调试日志:

Below is the VLC media player debug log:

core debug: adding item `udp://127.0.0.1:48550' ( udp://127.0.0.1:48550 )
core debug: processing request item: udp://127.0.0.1:48550, node: null, skip: 0
core debug: rebuilding array of current - root Playlist
core debug: rebuild done - 1 items, index 0
core debug: starting playback of the new playlist item
core debug: resyncing on udp://127.0.0.1:48550
core debug: udp://127.0.0.1:48550 is at 0
core debug: creating new input thread
core debug: Creating an input for 'udp://127.0.0.1:48550'
core debug: meta ok for (null), need to fetch art
core debug: requesting art for udp://127.0.0.1:48550
core debug: looking for meta fetcher module matching "any": 1 candidates
core debug: using timeshift granularity of 50 MiB, in path 'C:\Users\Oculus\AppData\Local\Temp'
core debug: looking for meta fetcher module matching "any": 1 candidates
core debug: `udp://127.0.0.1:48550' gives access `udp' demux `' path `127.0.0.1:48550'
core debug: specified demux `any'
core debug: creating demux: access='udp' demux='any' location='127.0.0.1:48550' file='\\127.0.0.1:48550'
core debug: looking for access_demux module matching "udp": 12 candidates
core debug: no access_demux modules matched
core debug: creating access 'udp' location='127.0.0.1:48550', path='\\127.0.0.1:48550'
core debug: looking for access module matching "udp": 21 candidates
lua debug: Trying Lua scripts in C:\Users\Oculus\AppData\Roaming\vlc\lua\meta\fetcher
lua debug: Trying Lua scripts in C:\Program Files\VideoLAN\VLC\lua\meta\fetcher
lua debug: Trying Lua scripts in C:\Users\Oculus\AppData\Roaming\vlc\lua\meta\fetcher
lua debug: Trying Lua scripts in C:\Program Files\VideoLAN\VLC\lua\meta\fetcher
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
udp debug: opening server=127.0.0.1:48550 local=:1234
core debug: net: connecting to [127.0.0.1]:48550 from []:1234
lua debug: skipping script (unmatched scope) C:\Program Files\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
lua debug: skipping script (unmatched scope) C:\Program Files\VideoLAN\VLC\lua\meta\fetcher\tvrage.luac
core debug: no meta fetcher modules matched
core debug: searching art for udp://127.0.0.1:48550
core debug: looking for art finder module matching "any": 2 candidates
core debug: no meta fetcher modules matched
core debug: searching art for udp://127.0.0.1:48550
core debug: looking for art finder module matching "any": 2 candidates
lua debug: Trying Lua scripts in C:\Users\Oculus\AppData\Roaming\vlc\lua\meta\art
lua debug: Trying Lua scripts in C:\Users\Oculus\AppData\Roaming\vlc\lua\meta\art
lua debug: Trying Lua scripts in C:\Program Files\VideoLAN\VLC\lua\meta\art
lua debug: Trying Lua scripts in C:\Program Files\VideoLAN\VLC\lua\meta\art
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: skipping script (unmatched scope) C:\Program Files\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: skipping script (unmatched scope) C:\Program Files\VideoLAN\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
lua debug: skipping script (unmatched scope) C:\Program Files\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
lua debug: skipping script (unmatched scope) C:\Program Files\VideoLAN\VLC\lua\meta\art\01_googleimage.luac
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
lua debug: skipping script (unmatched scope) C:\Program Files\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
lua debug: skipping script (unmatched scope) C:\Program Files\VideoLAN\VLC\lua\meta\art\02_frenchtv.luac
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
lua debug: skipping script (unmatched scope) C:\Program Files\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
lua debug: skipping script (unmatched scope) C:\Program Files\VideoLAN\VLC\lua\meta\art\03_lastfm.luac
core debug: no art finder modules matched
core debug: art not found for udp://127.0.0.1:48550
core debug: no art finder modules matched
core debug: art not found for udp://127.0.0.1:48550
core debug: using access module "udp"
core debug: Using block method for AStream*
core debug: starting pre-buffering
qt4 debug: IM: Setting an input

为什么会这样?以及如何解决这个问题?

Thoughts on why this is happening? And on how to resolve this?

推荐答案

我在另一个线程中找到了该问题的答案.

I found the answer to this question in another thread.

在混合flv文件结束时,FFmpeg使用持续时间和文件大小值更新标头(在文件的开头).但是,当您进行流媒体播放时,ffmpeg无法向前搜索,因此将显示警告.

At the end of muxing a flv file, FFmpeg updates the header (at front of file) with duration and filesize values. However, when you are streaming, ffmpeg can't seek to the front, so the warnings are displayed.

您可以通过添加一个标志(-flvflags no_duration_filesize)来禁用此功能,例如:

You can disable this function, by adding a flag (-flvflags no_duration_filesize), e.g.:

ffmpeg -re -i SampleM.flv -acodec libmp3lame -ar 44100 -b:a 128k \
 -pix_fmt yuv420p -profile:v baseline -s 426x240 -bufsize 6000k \
 -vb 400k -maxrate 1500k -deinterlace -vcodec libx264           \
 -preset veryfast -g 30 -r 30 -f flv                            \
 -flvflags no_duration_filesize                                 \
 "rtmp://live-api.facebook.com:80/rtmp/my_key"

来源: FFMPEG流在几秒钟后停止

这篇关于FFMPEG流错误:无法使用正确的文件大小和持续时间更新标头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆