Newest 'x264' Questions - Stack Overflow
Les articles publiés sur le site
-
Is it still possible to compile modern x264 with the nal long start code used prior to release r1510 ?
25 avril 2024, par Bryan KnowlesI'm currently nerding out on old technology with HD-DVDs. The only freely available muxer is hddvdmux, I'm using MultiAVCHD for this. Beginning with r1510, x264 switched to short start packets for NAL HRD (from what I understand). This makes the stream incompatible with hddvdmux. deank on doom9 patched hddvdmux to accept short start codes, but in doing so, the video file plays too quickly and the audio goes out of sync. The results I'm getting from the 2009 release of x264 leave much to be desired in comparison to modern releases, and I'd like to get those benefits while still maintaining compatibility with the original hddvdmux. Is it possible? If so... Any chance someone could compile a Windows binary for me with that change? (I think it needs to be 32 bit, but not sure)
I've tried multiple options with MultiAVCHD 4.1, fell back to 4.0 but am seeing weird rainbowing effects in the color from the extremely old version if x264. I admit I haven't dived in to programming, but seemed like a single change might be a reasonable request from someone already knowledgeable.
-
What are the licence free codecs for FFMPEG ?
8 avril 2024, par FunkyPizzaSo I've recently started implementing ffmpeg in an application that I do intend to distribute commercially. And I've had an hard time getting my head around the whole licensing process.
The most commonly answered question I've seen seems to be about x264 which requires a paid licence from x264.org in order to use it commercially (right?). I started to look into mpeg4 instead but that too seemed to be locked behind some patent licensing fee (https://www.mpegla.com/programs/mpeg-4-visual/license-agreement/).
I guess my question is the following, what video encoders compatible with FFMPEG are fully free to use?
Yes I barely know what I'm talking about, but I feel like I'm missing the elephant in the room here...
-
How to create IDR I-slice frame for H264 bytestream ?
19 mars 2024, par galukI depacketize the H264 video fragments from an IP.RTP stream and save them to video.ivf file. After depacketizing i have only [SPS] ,[PPS] and [non-IDR slice]. I try to create IDR slice by using x264 lib. x264 lib creates IDR frame which consists of 0x000001[SPS] 0x000001[PPS] 0x0001[SE slice] and 0x0001[I slice]. i insert it in the beginning of my file. But when i try to play this with VLC player it doesn't plays well. if i convert it to video.mp4 by ffmpeg i get playablr file. I think the problem is that after creating IDR frame with x264 lib I get SPS and PPS frames different from those that I get from the stream. My question is how to set parameters for x264 if i have real SPS and PPS frames to get the same SPS and PPS frames.
Here is my code:
x264_param_t param;
`x264_param_t param`; `/* Get default params for preset/tuning */ x264_param_default_preset(¶m, "medium", NULL);` `/* Configure non-default params */ param.i_csp = X264_CSP_I420; param.i_width = width;//640 GET FROM SPS !!!!!!!!!! param.i_height = height;//360; GET FROM SPS !!!!!!!!!!!!!! param.b_vfr_input = 0; //frame rate param.b_repeat_headers = 1; param.b_annexb = 1; `x264_t *encoder = x264_encoder_open(¶m);` if (encoder) { // These are the two picture structs. Input must be alloc() // Output will be created by the encode process x264_picture_t pic, pic_out; int r = x264_picture_alloc(&pic, X264_CSP_I420, width, height); if (r == 0) { pic.i_type = X264_TYPE_IDR; int y_bytes = width * height; int uv_bytes = width * height / 4; UCHAR* result = pic.img.plane[0]; // luma for (unsigned int y = 0; y < height; y++) { for (unsigned int x = 0; x < width; x++) pic.img.plane[0][y * width + x] = 0x16; } // chroma for (unsigned int y = 0; y < height / 2; y++) { for (unsigned int x = 0; x < width / 2; x++) { pic.img.plane[1][y * width / 2 + x] = 0x16; pic.img.plane[2][y * width / 2 + x] = 0x80; } } int i_frame_size = x264_encoder_encode(encoder, &nal, &i_nal, &pic, &pic_out); } }`
Maybe i should set another parameters for x264_param_t param which i can get from SPS and PPS
can someone help me with this issue
-
ffmpeg not working after update to Mavericks
24 février 2024, par Hudson BuddyAfter recently updating to Mavericks 10.9.5, my installation of ffmpeg has been bugging out
Error:
dyld: Library not loaded: /usr/local/lib/libx264.142.dylib Referenced from: /usr/local/bin/ffmpeg Reason: image not found Trace/BPT trap: 5
Any thoughts? I'm not very familar with manual compiling and I installed ffmpeg through Homebrew.
I tried uninstalling and doing:
brew install ffmpeg --HEAD brew install ffmpeg --build-from-source
but it spits back a ./configure error
==> ./configure --prefix=/usr/local/Cellar/ffmpeg/2.4.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample If you think configure made a mistake, make sure you are using the latest version from Git. If the latest version fails, report the problem to the ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net. Include the log file "config.log" produced by configure as this will help solve the problem. READ THIS: https://github.com/Homebrew/homebrew/wiki/troubleshooting These open issues may also help: gpac 0.5.0 doesn't build against ffmpeg 2.4.1 (https://github.com/Homebrew/homebrew/issues/32978)
-
Error Linking FFmpeg with libx264 : Undefined Reference to __imp_x264_encoder_open_163
23 février 2024, par zeyuI'm attempting to compile FFmpeg with libx264 support on Windows using MinGW-w64, but I'm encountering a linking error when building . The error points to an undefined reference to in . Here are the details of the error message:libavcodec/avcodec-57.dll__imp_x264_encoder_open_163libx264.o
In fact, I want to run the AccMPEG branch from https://github.com/Alex-q-z/myh264.git, and I am looking to obtain an executable (exe) to run on Windows.
LD libavcodec/avcodec-57.dll E:/MSY/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libavcodec/libx264.o: in function `X264_init': E:\MSY\home\myh264\ffmpeg-3.4.8/libavcodec/libx264.c:818: undefined reference to `__imp_x264_encoder_open_163' collect2.exe: error: ld returned 1 exit status make: *** [ffbuild/library.mak:103: libavcodec/avcodec-57.dll] Error 1
Here's what I've tried so far:
Ensuring libx264 is compiled with shared library support using .--enable-shared Verifying that the libx264 version is compatible with the version of FFmpeg I'm compiling. Adding the path to libx264 binaries to my PATH environment variable. Environment Details:
OS: Windows 11 MSYS2 MinGW-w64 version: 13.2.0 FFmpeg version: 3.4.8 libx264 version: unknown Questions:
What could be causing this undefined reference error? Is there a specific version of libx264 that's known to work with FFmpeg 3.4.8? Are there additional flags or configurations I should use when compiling libx264 or FFmpeg to avoid this issue? Any guidance or suggestions would be greatly appreciated. Thank you in advance!
In fact, I want to run the AccMPEG branch from https://github.com/Alex-q-z/myh264.git, and I am looking to obtain an executable (exe) to run on Windows.