0

我没有音频/视频不同步的问题。我的音频很好,并且同步。问题是音频文件跳过。这是我的输出:http: //youtu.be/D2TdXnXHt8o

这是我的脚本:

#!/bin/sh
echo "Enter the output file name: "; read name

fullscreen=$(xwininfo -root | grep 'geometry' | awk '{print $2;}')

avconv -f alsa -i pulse -f x11grab -r 30 -s $fullscreen -i :0.0 -vcodec libx264 -acodec mp3 -preset ultrafast -threads 4 -y $name

使用 Ubuntu 14.04

4

2 回答 2

1

很遗憾 avconv 还没有解决这个问题,尽管它应该是对 ffmpeg 的改进。在我的 Ubuntu 14.04 上,我通过安装 ffmpeg

sudo add-apt-repository ppa:jon-severinsson/ffmpeg
sudo apt-get update
sudo apt-get install ffmpeg

然后我运行 ffmpeg

ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 25 -video_size 1920x1080 -i :0.0+0,0 -acodec flac -vcodec libx264 -preset ultrafast -crf 0 -threads 0 screenoutput.mkv

和音频和视频现在很好地同步。

于 2014-10-12T23:02:04.893 回答
0

当我尝试使用此类似命令进行录制时遇到了完全相同的问题(请注意,我正在尝试使用无损截屏视频编解码器 huffyuv 而不是尝试直接编码为 x264):

avconv -f alsa -i pulse -f x11grab -r 30 -s 1920x1080 -i :0.0 -vcodec huffyuv -acodec libmp3lame -ac 1 -threads auto screencast.avi

在花了太多时间进行实验之后,我发现如果我将详细程度设置为“安静”,那么“跳过”或“断断续续”会有所改善:

avconv -v quiet -f alsa -i pulse -f x11grab -r 24 -s 1920x1080 -i :0.0 -vcodec huffyuv -acodec libmp3lame -ac 1 -threads auto screencast.avi

我发现完全消除问题的唯一方法是在两个 avconv 实例中分别录制视频和音频,然后杀死它们以停止录制:

哈夫尤夫:

avconv -v quiet -f x11grab -r 24 -s 1920x1080 -i :0.0 -vcodec huffyuv -threads auto video.mkv & \
avconv -v quiet -f alsa -i pulse -ar 22050 -ab 32 -ac 1 -threads auto audio.mp3 &

x264:

avconv -f x11grab -r 24 -s 1920x1080 -i :0.0 -qscale 0 -vcodec libx264 -crf 26 -preset superfast -v quiet -threads auto -y 001.mkv & \
avconv -f alsa -i pulse -acodec libmp3lame -ar 22050 -ab 32 -ac 1 -threads auto -v quiet -y 001.mp3 & 

avconv 的两个实例都在后台运行。要停止录制,请同时杀死它们:

kill %1 %2

要将音频和视频重新拼接为一个文件:

avconv -i video.mkv -i audio.mp3 -c:a copy -c:v copy video_and_audio.mkv
于 2014-08-26T04:13:04.060 回答