gpt4 book ai didi

ffmpeg - ffmpeg 中带有音频的屏幕截图

转载 作者:行者123 更新时间:2023-12-02 03:31:22 26 4
gpt4 key购买 nike

我正在使用从源代码构建的 ffmpeg this revision在 Fedora 20 中。

我能够使用以下命令完美录制音频:

FFmpeg/ffmpeg -f alsa -ac 2 -i pulse -- output.wav

但是,当我尝试屏幕捕获和音频时,如下所示:

FFmpeg/ffmpeg -video_size 800x600 -framerate 25 -ac 2 -f x11grab -i :0.0+0,0 -ac 2 -f alsa -i pulse -ac 2 -acodec copy output.mpeg -ac 2

我收到的视频有 0 个音频 channel ,我可以通过运行 FFmpeg/ffplay output.mpeg

来检查该视频
Input #0, mpeg, from 'output.mpeg':
Duration: 00:00:09.44, start: 0.540000, bitrate: 2743 kb/s
Stream #0:0[0x1e0]: Video: mpeg1video, yuv420p(tv), 800x600 [SAR 1:1 DAR 4:3], 104857 kb/s, 25 fps, 25 tbr, 90k tbn, 25 tbc
Stream #0:1[0x1c0]: Audio: mp2, 0 channels, s16p
7.26 M-V: 0.000 fd= 0 aq= 0KB vq= 33KB sq= 0B f=0/0

并且没有播放任何声音。 -ac 2 的位置不会改变行为,也不会只重复一次。尽管 ffmpeg 声称用 2 个 channel 录制音频,但输入如下:

ffmpeg version N-71312-ga66dcfe Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.8.3 (GCC) 20140911 (Red Hat 4.8.3-7)
configuration:
libavutil 54. 22.100 / 54. 22.100
libavcodec 56. 34.100 / 56. 34.100
libavformat 56. 29.100 / 56. 29.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 13.101 / 5. 13.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
Trailing options were found on the commandline.
Input #0, x11grab, from ':0.0+0,0':
Duration: N/A, start: 1428348285.201679, bitrate: N/A
Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 800x600, 25 fps, 25 tbr, 1000k tbn, 25 tbc
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, alsa, from 'pulse':
Duration: N/A, start: 1428348285.225901, bitrate: 1536 kb/s
Stream #1:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
File 'output.mpeg' already exists. Overwrite ? [y/N] y
[mpeg @ 0x2d079a0] VBV buffer size not set, using default size of 130KB
If you want the mpeg file to be compliant to some specification
Like DVD, VCD or others, make sure you set the correct buffer size
Output #0, mpeg, to 'output.mpeg':
Metadata:
encoder : Lavf56.29.100
Stream #0:0: Video: mpeg1video, yuv420p, 800x600, q=2-31, 200 kb/s, 25 fps, 90k tbn, 25 tbc
Metadata:
encoder : Lavc56.34.100 mpeg1video
Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, 1536 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg1video (native))
Stream #1:0 -> #0:1 (copy)

我一无所知。如果有人可以告诉我如何让它发挥作用:

  • 修复命令行标志中的错误
  • 如果是回归,则从哪个版本构建。
  • 任何其他方式

我会给他/她买一品脱。

最佳答案

解决方案似乎是使用不同的视频和音频编码器。此行有效:

FFmpeg/ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+0,0 -f alsa -ac 2 -i pulse -acodec aac -strict experimental output.flv

如果没有-acodec aac -strictexperimental,我就无法让它工作,这与ffmpeg wiki上的HOWTO相反。 .

我收到的错误消息是:

Output #0, flv, to 'output.flv':
Stream #0:0: Video: flv1 (flv), yuv420p, 1024x768, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
Metadata:
encoder : Lavc56.34.100 flv
Stream #0:1: Audio: adpcm_swf, 0 channels
Metadata:
encoder : Lavc56.34.100 adpcm_swf
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> flv1 (flv))
Stream #1:0 -> #0:1 (pcm_s16le (native) -> adpcm_swf (native))
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

我也无法使用以下方法让它工作:

FFmpeg/ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+0,0 -f alsa -ac 2 -i pulse -acodec copy output.mpeg

其中包含-ac 2可能在正确的位置。我反复遇到的错误是:

[mp2 @ 0x7faffc007da0] header 丢失

这很可能是一个错误/回归。

总而言之,我(可能)在 ffmpeg 中发现了 1 个错误,在 ffmpeg 的 wiki 中发现了 1 个错误。看来我得给自己买 promise 的啤酒了;)

关于ffmpeg - ffmpeg 中带有音频的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29478548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com