[FFmpeg-user] Play video and simultaneously record audio

Gyan ffmpeg at gyani.pro
Fri Jan 17 07:45:55 EET 2020



On 16-01-2020 10:21 pm, Michael Koch wrote:
> Hello Gyan,
>
>>
>>> can FFmpeg or FFplay be used for playing a video (without audio) and 
>>> exactly simultaneously record an audio file? I mean for making sound 
>>> effects for the video. If this isn't possible, is there any other 
>>> free software that can do it?
>>
>> Basic syntax would be,
>>
>>     ffmpeg -re -i videofile -f audiodevice -i audiourl  -map 1:a 
>> audioout.wav -map 0:v -f sdl2 -
>>
>
> My first test, this works fine:
>
> ffmpeg -re -i test.mp4 -f sdl2 -
>
> Question: Is there any documentation for -f sdl2 ?
>
>
> My second test:
> ffmpeg -re -i test.mp4 -f dshow -channels 2 -i audio="Mikrofon 
> (Realtek High Definiti" -y -map 1:a audio.wav -map 0:v -f sdl2 -
>
> This command line has two problems:
> 1. The video doesn't play continuously, it's stop-and-go. May be my 
> notebook has not enough computing power? Any ideas how to avoid this 
> problem?
> 2. FFmpeg doesn't stop when the end of the video has been reached. The 
> audio file gets longer than the video. I did already try to add the 
> -shortest option, but it didn't solve the problem.
>

1) Ok, let's pipe it to ffplay then.

2) The audio and playback video are independent outputs. So, ffmpeg will 
have to be manually stopped.

     ffmpeg -an -i test.mp4 -f dshow -channels 2 -i audio="Mikrofon 
(Realtek High Definiti" -y -map 1:a audio.wav -map 0:v -c copy -f mpegts 
- | ffplay -f mpegts -


Gyan

> Here is the console output:
>
> C:\Users\mKoch\Desktop>c://ffmpeg/ffmpeg -re -i test.mp4 -f dshow 
> -channels 2 -i
>  audio="Mikrofon (Realtek High Definiti" -y -map 1:a audio.wav -map 
> 0:v -f sdl2
> -
> ffmpeg version git-2020-01-15-0dc0837 Copyright (c) 2000-2020 the 
> FFmpeg develop
> ers
>   built with gcc 9.2.1 (GCC) 20200111
>   configuration: --enable-gpl --enable-version3 --enable-sdl2 
> --enable-fontconfi
> g --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d 
> --enable-libb
> luray --enable-libfreetype --enable-libmp3lame 
> --enable-libopencore-amrnb --enab
> le-libopencore-amrwb --enable-libopenjpeg --enable-libopus 
> --enable-libshine --e
> nable-libsnappy --enable-libsoxr --enable-libtheora 
> --enable-libtwolame --enable
> -libvpx --enable-libwavpack --enable-libwebp --enable-libx264 
> --enable-libx265 -
> -enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib 
> --enable-gmp --enab
> le-libvidstab --enable-libvorbis --enable-libvo-amrwbenc 
> --enable-libmysofa --en
> able-libspeex --enable-libxvid --enable-libaom --enable-libmfx 
> --enable-ffnvcode
> c --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec 
> --enable-dxva2 -
> -enable-avisynth --enable-libopenmpt --enable-amf
>   libavutil      56. 38.100 / 56. 38.100
>   libavcodec     58. 65.103 / 58. 65.103
>   libavformat    58. 35.102 / 58. 35.102
>   libavdevice    58.  9.103 / 58.  9.103
>   libavfilter     7. 71.100 /  7. 71.100
>   libswscale      5.  6.100 /  5.  6.100
>   libswresample   3.  6.100 /  3.  6.100
>   libpostproc    55.  6.100 / 55.  6.100
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
>   Metadata:
>     major_brand     : isom
>     minor_version   : 512
>     compatible_brands: isomiso2mp41
>     encoder         : Lavf58.25.100
>   Duration: 00:00:06.57, start: 0.000000, bitrate: 12218 kb/s
>     Stream #0:0(eng): Video: mpeg4 (Simple Profile) (mp4v / 
> 0x7634706D), yuv420p
> , 1920x1080 [SAR 1:1 DAR 16:9], 12216 kb/s, 30 fps, 30 tbr, 15360 tbn, 
> 30 tbc (d
> efault)
>     Metadata:
>       handler_name    : VideoHandler
>       timecode        : 07:34:52:21
>     Stream #0:1(eng): Data: none (tmcd / 0x64636D74), 0 kb/s
>     Metadata:
>       handler_name    : TimeCodeHandler
>       timecode        : 07:34:52:21
> Guessed Channel Layout for Input Stream #1.0 : stereo
> Input #1, dshow, from 'audio=Mikrofon (Realtek High Definiti':
>   Duration: N/A, start: 31251.109000, bitrate: 1411 kb/s
>     Stream #1:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
> Stream mapping:
>   Stream #1:0 -> #0:0 (pcm_s16le (native) -> pcm_s16le (native))
>   Stream #0:0 -> #1:0 (mpeg4 (native) -> rawvideo (native))
> Press [q] to stop, [?] for help
> Output #0, wav, to 'audio.wav':
>   Metadata:
>     major_brand     : isom
>     minor_version   : 512
>     compatible_brands: isomiso2mp41
>     ISFT            : Lavf58.35.102
>     Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 
> stereo, s16
> , 1411 kb/s
>     Metadata:
>       encoder         : Lavc58.65.103 pcm_s16le
> Output #1, sdl,sdl2, to 'pipe:':
>   Metadata:
>     major_brand     : isom
>     minor_version   : 512
>     compatible_brands: isomiso2mp41
>     encoder         : Lavf58.35.102
>     Stream #1:0(eng): Video: rawvideo (I420 / 0x30323449), yuv420p, 
> 1920x1080 [S
> AR 1:1 DAR 16:9], q=2-31, 746496 kb/s, 30 fps, 30 tbn, 30 tbc (default)
>     Metadata:
>       handler_name    : VideoHandler
>       timecode        : 07:34:52:21
>       encoder         : Lavc58.65.103 rawvideo
> frame=    1 fps=0.0 q=-0.0 size=     172kB time=00:00:01.01 
> bitrate=1396.5kbits/
> frame=   17 fps= 17 q=-0.0 size=     256kB time=00:00:01.51 
> bitrate=1387.0kbits/
> frame=   32 fps= 21 q=-0.0 size=     256kB time=00:00:01.51 
> bitrate=1387.0kbits/
> frame=   47 fps= 23 q=-0.0 size=     256kB time=00:00:02.53 bitrate= 
> 828.3kbits/
> frame=   62 fps= 24 q=-0.0 size=     256kB time=00:00:02.53 bitrate= 
> 828.3kbits/
> frame=   77 fps= 25 q=-0.0 size=     512kB time=00:00:03.55 
> bitrate=1180.5kbits/
> frame=   93 fps= 26 q=-0.0 size=     512kB time=00:00:04.05 
> bitrate=1035.6kbits/
> frame=  108 fps= 27 q=-0.0 size=     512kB time=00:00:04.05 
> bitrate=1035.6kbits/
> frame=  123 fps= 27 q=-0.0 size=     768kB time=00:00:04.55 
> bitrate=1382.1kbits/
> frame=  138 fps= 27 q=-0.0 size=     768kB time=00:00:05.06 
> bitrate=1242.6kbits/
> frame=  153 fps= 28 q=-0.0 size=     768kB time=00:00:05.56 
> bitrate=1130.7kbits/
> frame=  168 fps= 28 q=-0.0 size=    1024kB time=00:00:06.06 
> bitrate=1383.8kbits/
> frame=  184 fps= 28 q=-0.0 size=    1024kB time=00:00:06.58 
> bitrate=1274.3kbits/
> frame=  197 fps= 28 q=-0.0 size=    1024kB time=00:00:07.09 
> bitrate=1182.5kbits/
> frame=  197 fps= 26 q=-0.0 size=    1280kB time=00:00:07.60 
> bitrate=1379.0kbits/
> frame=  197 fps= 24 q=-0.0 size=    1280kB time=00:00:08.13 
> bitrate=1289.4kbits/
> frame=  197 fps= 23 q=-0.0 size=    1280kB time=00:00:08.63 
> bitrate=1214.6kbits/
> frame=  197 fps= 22 q=-0.0 size=    1536kB time=00:00:09.13 
> bitrate=1377.9kbits/
> frame=  197 fps= 21 q=-0.0 size=    1536kB time=00:00:09.63 
> bitrate=1306.1kbits/
> frame=  197 fps= 20 q=-0.0 size=    1536kB time=00:00:10.13 
> bitrate=1241.8kbits/
> frame=  197 fps= 19 q=-0.0 size=    1792kB time=00:00:10.63 
> bitrate=1381.0kbits/
> frame=  197 fps= 18 q=-0.0 size=    1792kB time=00:00:11.13 
> bitrate=1318.6kbits/
> frame=  197 fps= 17 q=-0.0 size=    1792kB time=00:00:11.63 
> bitrate=1261.9kbits/
> frame=  197 fps= 16 q=-0.0 size=    2048kB time=00:00:12.13 
> bitrate=1382.7kbits/
> frame=  197 fps= 16 q=-0.0 size=    2048kB time=00:00:12.63 
> bitrate=1328.0kbits/
> frame=  197 fps= 15 q=-0.0 size=    2048kB time=00:00:13.13 
> bitrate=1277.6kbits/
> frame=  197 fps= 15 q=-0.0 size=    2304kB time=00:00:13.63 
> bitrate=1384.6kbits/
> frame=  197 fps= 14 q=-0.0 size=    2304kB time=00:00:14.13 
> bitrate=1335.6kbits/
> frame=  197 fps= 14 q=-0.0 size=    2304kB time=00:00:14.63 
> bitrate=1289.9kbits/
> frame=  197 fps= 13 q=-0.0 size=    2560kB time=00:00:15.13 
> bitrate=1386.0kbits/
> frame=  197 fps= 13 q=-0.0 size=    2560kB time=00:00:15.63 
> bitrate=1341.5kbits/
> frame=  197 fps= 12 q=-0.0 size=    2560kB time=00:00:16.13 
> bitrate=1299.9kbits/
> frame=  197 fps= 12 q=-0.0 size=    2816kB time=00:00:16.63 
> bitrate=1387.0kbits/
> frame=  197 fps= 12 q=-0.0 size=    2816kB time=00:00:17.13 
> bitrate=1346.6kbits/
> frame=  197 fps= 11 q=-0.0 size=    2816kB time=00:00:17.63 
> bitrate=1308.3kbits/
> frame=  197 fps= 11 q=-0.0 size=    3072kB time=00:00:18.13 
> bitrate=1387.8kbits/
> frame=  197 fps= 11 q=-0.0 size=    3072kB time=00:00:18.63 
> bitrate=1350.7kbits/
> frame=  197 fps= 10 q=-0.0 size=    3072kB time=00:00:19.13 
> bitrate=1315.4kbits/
> frame=  197 fps= 10 q=-0.0 size=    3328kB time=00:00:19.63 
> bitrate=1388.6kbits/
> frame=  197 fps=9.8 q=-0.0 size=    3328kB time=00:00:20.13 
> bitrate=1354.2kbits/
> frame=  197 fps=9.6 q=-0.0 size=    3328kB time=00:00:20.63 
> bitrate=1321.3kbits/
> frame=  197 fps=9.3 q=-0.0 size=    3584kB time=00:00:21.13 
> bitrate=1389.4kbits/
> frame=  197 fps=9.1 q=-0.0 size=    3584kB time=00:00:21.63 
> bitrate=1357.4kbits/
> frame=  197 fps=8.9 q=-0.0 size=    3584kB time=00:00:22.13 
> bitrate=1326.5kbits/
> frame=  197 fps=8.7 q=-0.0 size=    3840kB time=00:00:22.63 
> bitrate=1389.9kbits/
> frame=  197 fps=8.5 q=-0.0 size=    3840kB time=00:00:23.13 
> bitrate=1359.8kbits/
> frame=  197 fps=8.3 q=-0.0 Lsize=    4048kB time=00:00:23.63 
> bitrate=1403.2kbits
> /s speed=   1x
> video:598388kB audio:4048kB subtitle:0kB other streams:0kB global 
> headers:0kB mu
> xing overhead: unknown
> Exiting normally, received signal 2.
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".



More information about the ffmpeg-user mailing list