Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
198 views
in Technique[技术] by (71.8m points)

Unable to play recorded video and audio using ffmpeg

I’m trying to generate a video and audio for every 40ms in a separate files and sending it to the cloud for a live stream, but created videos and audio’s are unable to play using ffplay.

Command:

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 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 segment frame-%003d.h264

Error:

frame-001.h264: Invalid data found when processing input.

Console output:

configuration: --prefix=/usr --extra-version=0ubuntu0.2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Guessed Channel Layout for Input Stream #0.0 : stereo Input #0, alsa, from 'hw:0': Duration: N/A, start: 1610338632.931406, bitrate: 1536 kb/s Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s Input #1, video4linux2,v4l2, from '/dev/video0': Duration: N/A, start: 3405.427360, bitrate: 147456 kb/s Stream #1:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 147456 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc Stream mapping: Stream #0:0 -> #0:0 (pcm_s16le (native) -> aac (native))
Stream #1:0 -> #1:0 (rawvideo (native) -> h264 (libx264)) Press [q] to stop, [?] for help [alsa @ 0x55777d96fe00] ALSA buffer xrun. [segment @ 0x55777d983d80] Opening 'sample-000.aac' for writing Output #0, segment, to 'sample-%003d.aac': Metadata: encoder : Lavf57.83.100 Stream #0:0: Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s Metadata: encoder : Lavc57.107.100 aac [libx264 @ 0x55777d98fa20] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 [libx264 @ 0x55777d98fa20] profile High, level 3.0 [libx264 @ 0x55777d98fa20] 264

  • core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=1 keyint_min=1 scenecut=40 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 [segment @ 0x55777d98dda0] Opening 'frame-000.h264' for writing Output #1, segment, to 'frame-%003d.h264': Metadata: encoder : Lavf57.83.100 Stream #1:0: Video: h264 (libx264), yuv420p, 640x480, q=-1--1, 25 fps, 25 tbn, 25 tbc Metadata: encoder : Lavc57.107.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 [segment @ 0x55777d983d80] Opening 'sample-001.aac' for writing [segment @ 0x55777d98dda0] Opening 'frame-001.h264' for writing [segment @ 0x55777d98dda0] Opening 'frame-002.h264' for writing [segment @ 0x55777d98dda0] Opening 'frame-003.h264' for writing [segment @ 0x55777d98dda0] Opening 'frame-004.h264' for writing [segment @ 0x55777d98dda0] Opening 'frame-005.h264' for writing [segment @ 0x55777d98dda0] Opening 'frame-006.h264' for writingA dup=1 drop=0 speed=1.07x ... [segment @ 0x55777d98dda0] Opening 'frame-018.h264' for writingA dup=5 drop=0 speed=0.714x ...
    [segment @ 0x55777d98dda0] Opening 'frame-029.h264' for writingA dup=12 drop=0 speed=0.768x ... [segment @ 0x55777d98dda0] Opening 'frame-042.h264' for writingA dup=21 drop=0 speed=0.834x ... [segment @ 0x55777d983d80] Opening 'sample-055.aac' for writingA dup=31 drop=0 speed=0.89x ... [segment @ 0x55777d98dda0] Opening 'frame-067.h264' for writingA dup=39 drop=0 speed=0.887x ... [segment @ 0x55777d98dda0] Opening 'frame-081.h264' for writingA dup=49 drop=0 speed=0.92x ... [segment @ 0x55777d98dda0] Opening 'frame-091.h264' for writingA dup=56 drop=0 speed=0.904x ... [segment @ 0x55777d98dda0] Opening 'frame-105.h264' for writingA dup=66 drop=0 speed=0.927x ... [segment @ 0x55777d98dda0] Opening 'frame-119.h264' for writingA dup=76 drop=0 speed=0.944x ... [segment @ 0x55777d98dda0] Opening 'frame-130.h264' for writingA dup=84 drop=0 speed=0.938x ... [segment @ 0x55777d98dda0] Opening 'frame-144.h264' for writingA dup=94 drop=0 speed=0.952x ... [segment @ 0x55777d983d80] Opening 'sample-154.aac' for writingA dup=103 drop=0 speed=0.958x ... [segment @ 0x55777d98dda0] Opening 'frame-168.h264' for writingA dup=111 drop=0 speed=0.952x ... [segment @ 0x55777d98dda0] Opening 'frame-182.h264' for writingA dup=121 drop=0 speed=0.962x ... [segment @ 0x55777d98dda0] Opening 'frame-193.h264' for writingA dup=129 drop=0 speed=0.956x ... [segment @ 0x55777d98dda0] Opening 'frame-207.h264' for writingA dup=139 drop=0 speed=0.965x ... [segment @ 0x55777d983d80] Opening 'sample-218.aac' for writingA dup=149 drop=0 speed=0.974x ... [segment @ 0x55777d98dda0] Opening 'frame-231.h264' for writingA dup=156 drop=0 speed=0.964x ... [segment @ 0x55777d98dda0] Opening 'frame-249.h264' for writing frame= 250 fps= 24 q=-1.0 Lsize=N/A time=00:00:10.00 bitrate=N/A dup=168 drop=0 speed=0.98x
    video:2707kB audio:149kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown [aac @ 0x55777d98cf00] Qavg: 260.500 [libx264 @ 0x55777d98fa20] frame I:250 Avg QP:26.77 size: 11085 [libx264 @ 0x55777d98fa20] mb I I16..4: 13.4% 72.3% 14.3% [libx264 @ 0x55777d98fa20] 8x8 transform intra:72.3% [libx264 @ 0x55777d98fa20] coded y,uvDC,uvAC intra: 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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Use -f stream_segment (or the alias -f ssegment). From the documentation:

stream_segment is a variant of the segment muxer used to write to streaming output formats, i.e. which do not require global headers, and is recommended for outputting e.g. to MPEG transport stream segments. ssegment is a shorter alias for stream_segment.

Example command:

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

However, your output durations are so short you may have trouble playing them, but that's a completely different topic.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...