我正在尝试对视频进行编码和分段,以便按需提供 HLS (VoD)。我使用以下代码来实现这一点:
ffmpeg -i 20170706_174314.mp4 -c 24 \
-vcodec libx264 -acodec aac -ac 1 -strict -2 -b:v 128k \
-profile:v baseline -maxrate 400k -bufsize 1835k \
-hls_time 10 -hls_playlist_type vod -vsync 1 \
video_chunks/index1.m3u8 \
-c 24 -vcodec libx264 -acodec aac -ac 1 -strict -2 -b:v 128k \
-profile:v baseline -maxrate 700k -bufsize 1835k \
-hls_time 10 -hls_playlist_type vod -vsync 1 \
video_chunks/index2.m3u8
稍后我创建另一个带有带宽分隔符的播放列表,以调用使用上述代码生成的另外两个播放列表。
我也尝试了这个其他代码只是为了进行分段,但遇到了完全相同的问题:
ffmpeg -i 20170706_174314.mp4 \
-c:a libmp3lame -ar 48000 -ab 64k -c:v libx264 -b:v 128k -flags \
-global_header -map 0 -f segment \
-segment_list video_chunks/test.m3u8 -segment_time 10 -segment_format mpegts \
video_chunks/segment_%05d.ts
此代码在某些视频上运行良好,但昨天我用我的三星 J7 Prime 手机录制了一个视频进行测试,因为视频将由手机生成,而这个视频的编码很差。质量很差,视频的某些部分变成了黑白。
我在此视频上注意到的另一件事是,以下消息一直循环出现,直到编码和分段过程结束。
过去时长 X 太大
其中 X 是接近于
0.675316
视频链接如下:
我的FFmpeg版本:
ffmpeg --version
ffmpeg version N-86482-gbc40674 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.1.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
libavutil 55. 66.100 / 55. 66.100
libavcodec 57. 99.100 / 57. 99.100
libavformat 57. 73.100 / 57. 73.100
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 92.100 / 6. 92.100
libswscale 4. 7.101 / 4. 7.101
libswresample 2. 8.100 / 2. 8.100
libpostproc 54. 6.100 / 54. 6.100
所以:Windows 10