In the documentation for ffmpeg, it states: *stream_type is one of following: ’v’ or ’V’ for video, ’a’ for audio, ’s’ for subtitle, ’d’ for data, and ’t’ for attachments. ’v’ matches all video streams, ’V’ only matches video streams which are not attached pictures, video thumbnails or cover arts.*
So I have a command to convert a file from h264 to h265 which is: ffmpeg -i filename.mkv -map 0 -c copy -c:v libx265 265_filename.mkv However, recently, I have some files that have mpjeg streams for cover art. They are picked up as video to be converted, which causes an error. Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (h264 (native) -> hevc (libx265)) Stream #0:2 -> #0:2 (copy) Stream #0:3 -> #0:3 (mjpeg (native) -> hevc (libx265)) Stream #0:4 -> #0:4 (mjpeg (native) -> hevc (libx265)) Stream #0:5 -> #0:5 (mjpeg (native) -> hevc (libx265)) Stream #0:6 -> #0:6 (mjpeg (native) -> hevc (libx265)) So, I thought I would use -c:V instead of -c:v. I tested this with ffprobe, with little v, it correctly shows all the streams: ffprobe -v error -show_entries "stream=codec_name" -select_streams v filename.mkv [STREAM] codec_name=h264 [/STREAM] [STREAM] codec_name=mjpeg [/STREAM] [STREAM] codec_name=mjpeg [/STREAM] [STREAM] codec_name=mjpeg [/STREAM] [STREAM] codec_name=mjpeg [/STREAM] And switching to using capital V, correctly shows only the one stream ffprobe -v error -show_entries "stream=codec_name" -select_streams V filename.mkv [STREAM] codec_name=h264 [/STREAM] However, when I carry this convention over to ffmpeg with: ffmpeg -i filename.mkv -map 0 -c copy -c:V libx265 265_filename.mkv It gives the exact same behavior as the lowercase v option, and again tries to convert all the video streams (including the mpjeg), not just the H264 stream like the ffprobe command does. Is this intended behavior? Is it a bug? Am I misunderstanding something else entirely about the documentation or the two commands? I realize that I can also specify -c:v:0 to get the first video stream (which should be my desired one). But I am batch processing a large number of video files and I can't always make that assumption. I apologize if the message is long, but I wanted to do my best to be thorough and clear in my explanation of the problem I'm encountering. Thank you for your time and assistance in understanding this behavior. _______________________________________________ ffmpeg-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-user
