流映射“0:a:0”不匹配任何流

Сер*_*нко 9 ffmpeg

要使用 FFMPEG 对视频进行编码,请使用以下命令:

\n\n
/usr/bin/ffmpeg -i INPUT.MP4 \n-preset veryfast -r 25 -g 75 -threads 4 -sc_threshold 0 \n-map 0:v:0 -map 0:a:0 \n-filter:v:0 scale=h=240:w=-2  \n-minrate:v:0 75k  \n-maxrate:v:0 218k  \n-bufsize:v:0 300k \n-b:v:0 150k  -c:a aac -b:a 128k -ac 2 \n-var_stream_map "v:0,a:0" \n-master_pl_name master.m3u8 \n-f hls -hls_time 3 -segment_time 6 \n-hls_list_size 0 -segment_format mpegts \n-hls_segment_filename /res-%v/segment-%d.ts  OUTPUT.M3U8  1> log.txt 2>&1 \n
Run Code Online (Sandbox Code Playgroud)\n\n

总的来说,尽管命令如此庞大,但它还是可以轻松应对任务

\n\n

但有一点但是:

\n\n

如果您在没有音频的视频上运行此命令,将会出现错误:

\n\n
Stream map \'0:a:0\' matches no streams. To ignore this, add a trailing \'?\' to the map.\n
Run Code Online (Sandbox Code Playgroud)\n\n

是的,我知道该命令告诉我找不到音频流。要忽略这一点,您需要在地图上添加一个尾随问号

\n\n

但只有我\xe2\x80\x99不明白在哪里?到哪个地方?

\n\n

我很乐意接受任何意见或建议

\n\n

提前致谢

\n

llo*_*gan 9

使用-map 0:a:0?,如:

/usr/bin/ffmpeg -i INPUT.MP4 
-preset veryfast -r 25 -g 75 -threads 4 -sc_threshold 0 
-map 0:v:0 -map 0:a:0? 
-filter:v:0 scale=h=240:w=-2  
-minrate:v:0 75k  
-maxrate:v:0 218k  
-bufsize:v:0 300k 
-b:v:0 150k  -c:a aac -b:a 128k -ac 2 
-var_stream_map "v:0,a:0" 
-master_pl_name master.m3u8 
-f hls -hls_time 3 -segment_time 6 
-hls_list_size 0 -segment_format mpegts 
-hls_segment_filename /res-%v/segment-%d.ts  OUTPUT.M3U8  1> log.txt 2>&1 
Run Code Online (Sandbox Code Playgroud)