我尝试使用ffmpeg命令将mp4转换为hls。
ffmpeg -i test_video.mp4 -y
-preset veryslow -keyint_min 100 -g 100 -sc_threshold 0 -r 25 -c:v libx264 -pix_fmt yuv420p
-map v:0 -s:0 960x540 -b:v:0 2M -maxrate:0 2.14M -bufsize:0 3.5M
-map v:0 -s:1 416x234 -b:v:1 145 k -maxrate:1 155 k -bufsize:1 220 k
-map v:0 -s:2 640x360 -b:v:2 365 k -maxrate:2 390 k -bufsize:2 640 k
-map v:0 -s:3 $768x432 -b:v:3 730k -maxrate:3 781 k -bufsize:3 1278k
-map v:0 -s:4 768x432 -b:v:4 1.1M -maxrate:4 1.17M -bufsize:4 2M
-map v:0 -s:5 1280x720 -b:v:5 3M -maxrate:5 3.21M -bufsize:5 5.5M
-map v:0 -s:6 1280x720 -b:v:6 4.5M -maxrate:6 4.8M -bufsize:6 8M
-map v:0 -s:7 1920x1080 -b:v:7 6M -maxrate:7 6.42M -bufsize:7 11M
-map v:0 -s:8 1920x1080 -b:v:8 7.8M -maxrate:8 8.3M -bufsize:8 14M
-map a:0 -c:a aac -b:a 128 k -ac 1 -ar 44100
-f hls -hls_time 4 -hls_playlist_type vod -hls_flags independent_segments
-master_pl_name hls_multi/hls.m3u8
-hls_segment_filename hls_multi/multi_%v/s%06d.ts
-strftime_mkdir 1
-var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2 v:3,a:3 v:4,a:4 v:5,a:5 v:6,a:6 v:7,a:7 v:8,a:8“
但我收到了这条信息
流映射'a:0‘不匹配任何流。若要忽略这一点,请添加“吗?”到地图上。
所以我试着用命令来做:
ffmpeg -i test_video.mp4 -y
-preset veryslow -keyint_min 100 -g 100 -sc_threshold 0 -r 25 -c:v libx264 -pix_fmt yuv420p
-map v:0 -s:0 960x540 -b:v:0 2M -maxrate:0 2.14M -bufsize:0 3.5M
-map v:0 -s:1 416x234 -b:v:1 145 k -maxrate:1 155 k -bufsize:1 220 k
-map v:0 -s:2 640x360 -b:v:2 365 k -maxrate:2 390 k -bufsize:2 640 k
-map v:0 -s:3 $768x432 -b:v:3 730k -maxrate:3 781 k -bufsize:3 1278k
-map v:0 -s:4 768x432 -b:v:4 1.1M -maxrate:4 1.17M -bufsize:4 2M
-map v:0 -s:5 1280x720 -b:v:5 3M -maxrate:5 3.21M -bufsize:5 5.5M
-map v:0 -s:6 1280x720 -b:v:6 4.5M -maxrate:6 4.8M -bufsize:6 8M
-map v:0 -s:7 1920x1080 -b:v:7 6M -maxrate:7 6.42M -bufsize:7 11M
-map v:0 -s:8 1920x1080 -b:v:8 7.8M -maxrate:8 8.3M -bufsize:8 14M
-map a:0?-c:a aac -b:a 128 k -ac 1 -ar 44100
-f hls -hls_time 4 -hls_playlist_type vod -hls_flags independent_segments
-master_pl_name hls_multi/hls.m3u8
-hls_segment_filename hls_multi/multi_%v/s%06d.ts
-strftime_mkdir 1
-var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2 v:3,a:3 v:4,a:4 v:5,a:5 v:6,a:6 v:7,a:7 v:8,a:8“
并得到了这样的信息:
hls @ 0x7f9e59808200无法映射流:0 hls @ 0x7f9e59808200变体流信息更新失败,状态ffffffea无法为输出文件#0写入头(不正确的编解码参数?):无效的参数错误初始化输出流0:8 -
命令:
ff探头-i test_video.mp4
给了我这个输出:
F探针版本4.3.1版权(c) 2007-2020年FFmpeg开发者
用Apple版本11.0.3构建(clang-1103.0.32.62)
配置:-前缀=/usr/local/c业力/ffmpeg/4.3.1-使能-共享-使能-使能-版本3-启用-vbmp3-使能-libopus-使能-librav1e-使能-librubberband使能-gnutls-使能-gpl-使能-libbluray-使能-libdav1d-使使-libmpmp3ame-使使-libopus-使-librav1e-使能-librubberband使能-libsnappy-使-libsrt使能-libbluray-使能-libdav1e-使使-librubberband使能-libsrt使-使-libdav1d-使使-libopus使-librav1e-使能-libsrt使-使-libbluray启用-libdavav1d-使-libsnappy使能-librav1e-使-librubberband使能-libsrt使能-使-libdavav1d-使使-libopus使能-librav1e-使-使-librubberband使能-libsnappy使能-libsrt libbluray启用-libtheora-启用-libvidstab启用-libfreetype-启用-libvpx-启用-libwebp-启用-libvpx 264-启用-libx265-启用-libxml2-启用-libxvid-启用-lzma-启用-librtmp启用-libfreetype-启用-frei0r-启用-libopencore-amrnb-启用-libopencore-amrnb amrnb amrwb-启用-libopenjpeg-启用-librtmp启用-libspeex使能-libsoxr-工具-libopencore启用-libopencore-amrnb amrwb-启用-libopenjpeg-enable-lzma libspeex enable-libsoxr libsoxr-libopenjpeg jack禁用-禁用- 56禁用-禁用-libtheora-使能-libopencore-启用-libx264-启用-libxml2 2-启用-libxvid-使能-libfreetype-使能-frei0r-启用-libopencore-启用-libopencore-amrnb-启用-libopencore-amrwb-启用-libopenjpeg-enable-libjack enable-libspeex-enable-libfreetype-启用-frei0r51.100 / 56。51.100 libavcodec 5891.100 / 58。91.100 libavformat 58。45.100 / 58。45.100 libavdevice 58。10.100 / 58。10.100 libavfilter 7.85.100/7.85.100 libavresplum4.0。0 / 4.0 libswscale 5. 7.100 / 5. 7.100 libsw新样本3.7.100/3.7.100 libpostproc 55。7.100 / 55。7.100输入#0,mov,mp4,m4a,3gp,3g2,mj2,从'test_video.mp4':元数据: major_brand : mp42 minor_version :0 compatible_brands: mp42mp41isomavc1 creation_time : 2016-10-29T07:22:11.000000Z持续时间: 00:01:00.12,开始: 0.000000,比特率: 2394 kb/ Stream #0:0(und):视频: h264 (高) (avc1 / 0x31637661),yuv420p(电视,bt709),1280x720 SAR 1:1 DAR 16:9,2392 kb/s,25 fps、25 tbr、25 tbn、50 tbc (默认)元数据: creation_time :2016-10-29T07:22:11.0000Z handler_name : L-SMASH视频处理器编码器: AVC编码
有什么建议吗?谢谢
发布于 2020-10-09 13:18:27
如果这是完整的输出,那么就没有音频流。从-var_stream_map中删除对音频流的所有引用。
https://stackoverflow.com/questions/64265666
复制相似问题