当前位置: 首页 > 知识库问答 >
问题:

无法使用ffmpeg播放录制的视频和音频

耿联
2023-03-14

我试图在一个单独的文件中每40毫秒生成一个视频和音频,并将其发送到云端进行直播,但创建的视频和音频无法使用ffplay播放。

命令:

ffmpeg-f alsa-thread_queue_size1024-i hw: 0-f video o4linux2-i /dev/video0-c: a aac-ar48k-t 0:10-segment_time00:00.04-f段sample-3d.aac-c: v h264-force_key_frames"expr: gte(t,n_forced*0.04)"-pix_fmtyuv420p-s: v640x480-t 0:10-r 25-g 1-segment_time00:00.04-f段帧-3d. h264

错误:

第001帧。h264:处理输入时发现无效数据。

控制台输出:

配置:--prefix=/usr--extra version=0ubuntu0。2--toolchain=harded--libdir=/usr/lib/x86_64-linux-gnu--incdir=/usr/include/x86_64-linux-gnu--enable gpl--enable剥离--enable avresample--enable avisynch--enable gnutls--enable ladspa--enable libbs2b--enable libcaca--enable libcdio--enable libflite--enable libfontconfig--enable libfreetype--启用libfribidi--enable libgme--enable libgsm--enable-libmp3lame--enable libmysofa--enable libopenjpeg--enable libopenmpt--enable libopus--enable libpulse--enable librubberband--enable librsvg--enable libshine--enable libsoxr enable libspeex--enable libssh--enable libthera--enable libtwolame--enable libvorbis--enable libvpx--enable libwavpack--enable libwebp--enable-libx265--enable-libxml2--enable libxvid--enable libzvbi--enable omx--enable openal--enable opengl--enable-sdl2--enable-libdc1394--enable libdrm--enable-libiec61883--enable chromaprint--enable-frei0r--enable libopencv enable-libx264--启用共享libavutil 55。78.100 / 55. 78.100 libavcodec 57.107。100 / 57.107.100 libav57格式。83.100 / 57. 83.100 libav设备57。10.100 / 57. 10.100 libavfilter 6.107。100 / 6.107.100磅重采样3。7. 0 / 3. 7.0 libswscale 4。8.100 / 4. 8.100磅重采样2。9.100 / 2. 9.100 libpostroc 54。7.100 / 54. 7.100输入流的猜测通道布局#0.0:立体声输入#0,alsa,从'hw:0':持续时间:N/A,开始时间:1610338632.931406,比特率:1536 kb/s流#0:0:音频:pcm#U s16le,48000 Hz,立体声,s16,1536 kb/s输入#1,video4linux2,v4l2,从'/dev/video0':持续时间:N/A,开始时间:3405.427360,比特率:147456/s,视频:1(YUY2/0x32595559)、yuyv422、640x480、147456 kb/s、30 fps、30 tbr、1000k tbn、1000k tbc流映射:流#0:0-

  • 核心152 r2854 e9a5903-H.264/MPEG-4 AVC编解码器-拷贝左2003-2017-http://www.videolan.org/x264.html-选项:Cabac=1 ref=1 Deblock=1:0:0分析=0x3:0x113 me=十六进制子=7 psy=1psy_rd=1.00:0.00mixed_ref=0me_range=16chroma_me=1网格=1 8x8dct=1 cqm=0死区=21,11fast_pskip=1chroma_qp_offset=-2线程=6lookahead_threads=1sliced_threads=0 nr=0抽取=1隔行=0bluray_compat=0constrained_intra=0 bframe=0权重=0 keyint=1keyint_min=1场景=40intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4ip_ratio=1.40 aq=1:1.00[片段@0x55777d98dda0]打开'frame-000. h264'用于写入输出#1,片段,到'frame-3d. h264':元数据:编码器: Lavf57.83.100流#1:0:视频: h264(libx264), yuv420p,640x480, q=-1--1、25 fps、25 tbc元数据:编码器:Lavc57.107.100 libx264侧数据:cpb:比特率最大/分钟/avg:0/0/0缓冲区大小:0vbv_delay:-1[片段@0x55777d983d80]打开'sample-001.aac'用于写入[片段@0x55777d98dda0]打开'帧-001. h264'用于写入[片段@0x55777d98dda0]打开'帧-002. h264'用于写入[片段@0x55777d98dda0]打开'帧-003. h264'用于写入[片段@0x55777d98dda0]打开'帧-004. h264'用于写入[片段@0x55777d98dda0]打开'帧-005. h264'用于写入[[片段@0x55777d98dda0]打开'frame-006. h264'用于写入dup=1下降=0速度=1.07x...[片段@0x55777d98dda0]打开'frame-018. h264'用于写入dup=5下降=0速度=0.714x...
    [片段@0x55777d98dda0]打开'frame-029. h264'用于写入dup=12下降=0速度=0.768x...[片段@0x55777d98dda0]打开写的“框架-042. h264”dup=21下降=0速度=0.834x...[片段@0x55777d983d80]打开写的“sample-055.aac”dup=31下降=0速度=0.89x...[片段@0x55777d98dda0]打开'frame-067. h264'用于写dup=39下降=0速度=0.887x...[片段@0x55777d98dda0]打开'frame-081. h264'用于写dup=49下降=0速度=0.92x...[片段@0x55777d98dda0]打开'frame-091. h264'用于写dup=56下降=0速度=0.904x...[片段@0x55777d98dda0]打开'frame-105. h264'用于写入一个dup=66下降=0速度=0.927x...[片段@0x55777d98dda0]打开'frame-119. h264'用于写入一个dup=76下降=0速度=0.944x...[片段@0x55777d98dda0]打开'frame-130. h264'为写写写=84下降=0速度=0.938x...[片段@0x55777d98dda0]打开'框架-144. h264'为写写写=94下降=0速度=0.952x...[片段@0x55777d983d80]打开'sample-154.aac'为写写写写=103下降=0速度=0.958x...[片段@0x55777d98dda0]打开“框架-168. h264”用于写入一个dup=111下降=0速度=0.952x...[片段@0x55777d98dda0]打开“框架-182. h264”用于写入一个dup=121下降=0速度=0.962x...[片段@0x55777d98dda0]打开“框架-193. h264”用于[片段@0x55777d98dda0]打开写的框架207. h264=139下降=0速度=0.965x...[片段@0x55777d983d80]打开写的sample-218.aac=149下降=0速度=0.974x...[片段@0x55777d98dda0]打开帧-231. h264'用于写入一个dup=156下降=0速度=0.964x...[片段@0x55777d98dda0]打开帧-249. h264'用于写入帧=250 fps=24 q=-1.0 Lsize=N/A时间=00:00:10.00比特率=N/A dup=168下降=0速度=0.98x
    视频: 2707kB音频: 149kB字幕: 0kB其他流: 0kB全局报头: 0kB多媒体开销:未知[aac@0x55777d98cf00]Qavg: 260.500[libx264@0x55777d98fa20]帧I: 250 Avg QP: 26.77大小: 11085[libx264@0x55777d98fa20]mb I16..4: 13.4% 72.3% 14.3%[libx264@0x55777d98fa20] 8x8内变换: 72.3%[libx264@0x55777d98fa20]编码y, uvDC, uvAC内:54.2% 91.6% 64.5%[libx264@0x55777d98fa20]i16 v, h, dc, p:13% 18% 6% 62%[libx264@0x55777d98fa20]i8 v, h, dc, ddl, ddr, vr, hd, vl, hu:19% 18% 16% 6% 7% 6% 12% 5% 10%[libx264@0x55777d98fa20]i4 v, h, dc, ddl, ddr, vr, hd, vl, hu:28% 18% 11% 6% 8% 8% 10% 5% 6%[libx264@0x55777d98fa20]i8c dc, h, v, p:58% 20% 15% 7%[libx264@0x55777d98fa20]kb/s: 2216.90

共有1个答案

衡子安
2023-03-14

使用-fstream_segment(或别名-f s段落)。从留档:

stream_segmentsegmentmuxer的一种变体,用于写入流输出格式,即不需要全局头,建议用于输出,例如MPEG传输流段s段流段的较短别名。

命令示例:

ffmpeg -f alsa -thread_queue_size 1024 -i hw:0 -f video4linux2 -i /dev/video0 -c:a aac -ar 48k -t 0:10 -segment_time 00:00.04 -f stream_segment sample-%003d.aac -c:v h264 -force_key_frames "expr:gte(t,n_forced*0.04)" -pix_fmt yuv420p -s:v 640x480 -t 0:10 -r 25 -g 1 -segment_time 00:00.04 -f stream_segment frame-%003d.h264

然而,您的输出持续时间太短,您可能无法播放它们,但这是一个完全不同的主题。

 类似资料:
  • 我是一名大学生,现在正在学习FFmpeg。 当我使用这个公式时,我发现一个现象。 1.帧率越高,视频播放速度越快。 2.帧率越慢,视频播放速度越快。 我希望无论帧率是多少,视频播放速度都是合适的。不要太快或太慢。

  • 本文向大家介绍Javacv使用ffmpeg实现音视频同步播放,包括了Javacv使用ffmpeg实现音视频同步播放的使用技巧和注意事项,需要的朋友参考一下 最近用javaCV的ffmpeg包的FFmpegFrameGrabber帧捕捉器对捕捉到的音频帧和视频帧做了同步的播放。采用的同步方法是视频向音频同步。 程序和源码 具体的思路如下: (1)首先介绍ffmpeg是如何捕捉视频文件的图像和声音的

  • 我有一个蓝牙耳机(可以播放立体声音乐)连接到我的android手机(android 4.4.3)。现在,我希望我的代码能够播放立体声音乐并从耳机中录制音频,这两种方式的采样率都很高(44100)。我在以下帖子中遵循了这些解决方案。 如何使用蓝牙耳机录制声音 通过与Android设备配对的蓝牙耳机捕获音频 我的基本代码如下所示。 权限: 打开蓝牙Sco的代码: 播放立体声音乐的代码: 录制音频的代码

  • 在我的网络应用程序中,用户应该能够上传自己的视频(任意一种格式)。我正在使用ffmpeg对视频进行编码。mp4和。flv使用命令: ffmpeg-iuservid.whateveroutput.mp4output.flv 当ffmpeg对视频进行编码时,它会加载到用户页面上的flowplayer中。但flowplayer总是说“找不到文件”,因为ffmpeg编码尚未完成。 是否有可能在某个播放器中

  • 问题内容: 我正在使用Flask提供.m3u8和.ts文件来模拟vod流。 视频播放器不会流式传输文件并显示错误(请参见下面的屏幕截图)。我找不到它是什么错误的日志。 我缺少某处的日志消息吗?是什么原因造成的,我该如何解决? 问题答案: 默认情况下,开发服务器以单线程模式运行,这意味着它一次只能处理一个请求。你一次请求两个文件流,.m3u8和.ts。你可以传递或以允许一次处理多个请求,但是,用它自